[Checkins] SVN: z3c.vcsync/trunk/src/z3c/vcsync/ Introduce AllState helper class.

Martijn Faassen faassen at infrae.com
Fri Jul 6 17:11:15 EDT 2007


Log message for revision 77534:
  Introduce AllState helper class.
  

Changed:
  U   z3c.vcsync/trunk/src/z3c/vcsync/tests.py
  U   z3c.vcsync/trunk/src/z3c/vcsync/vc.py

-=-
Modified: z3c.vcsync/trunk/src/z3c/vcsync/tests.py
===================================================================
--- z3c.vcsync/trunk/src/z3c/vcsync/tests.py	2007-07-06 21:09:40 UTC (rev 77533)
+++ z3c.vcsync/trunk/src/z3c/vcsync/tests.py	2007-07-06 21:11:15 UTC (rev 77534)
@@ -41,37 +41,15 @@
     def removed(self, dt):
         return self._removed
     
-class TestState(object):
-    grok.implements(IState)
-
+class TestState(vc.AllState):
+    
     def __init__(self, root):
-        self.root = root
+        super(TestState, self).__init__(root)
         self.removed_paths = []
 
-    def objects(self, dt):
-        for container in self.containers(dt):
-            for item in container.values():
-                if not IContainer.providedBy(item):
-                    yield item
-            # yield container after items in container,
-            # to test creation of directories when items are
-            # thrown up that don't have directories yet
-            yield container
-
     def removed(self, dt):
         return self.removed_paths
-    
-    def containers(self, dt):
-        return self._containers_helper(self.root)
 
-    def _containers_helper(self, container):
-        yield container
-        for obj in container.values():
-            if not IContainer.providedBy(obj):
-                continue
-            for sub_container in self._containers_helper(obj):
-                yield sub_container
-
 class Container(object):
     implements(IContainer)
     

Modified: z3c.vcsync/trunk/src/z3c/vcsync/vc.py
===================================================================
--- z3c.vcsync/trunk/src/z3c/vcsync/vc.py	2007-07-06 21:09:40 UTC (rev 77533)
+++ z3c.vcsync/trunk/src/z3c/vcsync/vc.py	2007-07-06 21:11:15 UTC (rev 77534)
@@ -6,7 +6,8 @@
 from zope.app.container.interfaces import IContainer
 from zope.traversing.interfaces import IPhysicallyLocatable
 
-from z3c.vcsync.interfaces import IVcDump, ISerializer, IVcFactory, ISynchronizer
+from z3c.vcsync.interfaces import (IVcDump, ISerializer,
+                                   IState, IVcFactory, ISynchronizer)
 
 import grok
 
@@ -143,3 +144,35 @@
             steps.append(obj.__name__)
         steps.reverse()
         return self.checkout.path.join(*steps)
+
+class AllState(object):
+    """A special state object.
+
+    It reports all objects in the state as modified, and reports nothing
+    removed.
+    """
+    grok.implements(IState)
+
+    def __init__(self, root):
+        self.root = root
+
+    def objects(self, dt):
+        for container in self._containers(dt):
+            for item in container.values():
+                if not IContainer.providedBy(item):
+                    yield item
+            yield container
+
+    def removed(self, dt):
+        return []
+    
+    def _containers(self, dt):
+        return self._containers_helper(self.root)
+
+    def _containers_helper(self, container):
+        yield container
+        for obj in container.values():
+            if not IContainer.providedBy(obj):
+                continue
+            for sub_container in self._containers_helper(obj):
+                yield sub_container



More information about the Checkins mailing list