[z3-checkins] r18964 - in z3/Five/branch/efge-object-event: . tests

efge at codespeak.net efge at codespeak.net
Tue Oct 25 18:54:31 CEST 2005


Author: efge
Date: Tue Oct 25 18:54:31 2005
New Revision: 18964

Modified:
   z3/Five/branch/efge-object-event/event.py
   z3/Five/branch/efge-object-event/event.zcml
   z3/Five/branch/efge-object-event/tests/event.txt
   z3/Five/branch/efge-object-event/tests/test_event.py
Log:
Actually we don't care about _notifyOfCopyTo and _postCopy, as they
don't do recursion by default.



Modified: z3/Five/branch/efge-object-event/event.py
==============================================================================
--- z3/Five/branch/efge-object-event/event.py	(original)
+++ z3/Five/branch/efge-object-event/event.py	Tue Oct 25 18:54:31 2005
@@ -162,10 +162,12 @@
 def callManageAfterAdd(ob, event):
     """Compatibility subscriber for manage_afterAdd.
     """
+    # used for ISimpleItem/IObjectManager, IObjectMovedEvent
     if not hasDeprecatedMethods(ob):
         return
     container = event.newParent
     if container is None:
+        # this is a remove
         return
     if not isFiveMethod(ob.manage_afterAdd):
         warnings.warn(
@@ -179,10 +181,12 @@
 def callManageBeforeDelete(ob, event):
     """Compatibility subscriber for manage_beforeDelete.
     """
+    # used for ISimpleItem/IObjectManager, IObjectMovedEvent
     if not hasDeprecatedMethods(ob):
         return
     container = event.oldParent
     if container is None:
+        # this is an add
         return
     if not isFiveMethod(ob.manage_beforeDelete):
         warnings.warn(
@@ -207,6 +211,7 @@
 def callManageAfterClone(ob, event):
     """Compatibility subscriber for manage_afterClone.
     """
+    # used for ISimpleItem/IObjectManager, IObjectMovedEvent
     if not hasDeprecatedMethods(ob):
         return
     if not isFiveMethod(ob.manage_afterClone):
@@ -219,6 +224,7 @@
     item = event.object
     ob.manage_afterClone(item)
 
+
 ##################################################
 # Monkey patches
 
@@ -240,17 +246,6 @@
     # A warning is sent by the subscriber
     pass
 
-# From CopyContainer
-def _notifyOfCopyTo(self, container, op=0):
-    # A warning is sent by the caller
-    pass
-
-# From CopyContainer
-def _postCopy(self, container, op=0):
-    # A warning is sent by the caller
-    pass
-
-
 # XXX other recursive dispatching:
 # changeOwnership (called by manage_takeOwnership)
 # manage_fixupOwnershipAfterAdd
@@ -411,21 +406,15 @@
         raise CopyError, eNotSupported % escape(id)
     self._verifyObjectPaste(ob)
 
-    if hasDeprecatedMethods(ob):
-        # BBB
-        if not isFiveMethod(ob._notifyOfCopyTo):
-            warnings.warn(
-                "Calling %s._notifyOfCopyTo is deprecated when using Five, "
-                "use an IObjectWillBeMovedEvent subscriber "
-                "instead." % ob.__class__.__name__,
-                DeprecationWarning, stacklevel=2)
-        try:
-            ob._notifyOfCopyTo(self, op=1)
-        except:
-            raise CopyError, MessageDialog(
-                title='Rename Error',
-                message=sys.exc_info()[1],
-                action ='manage_main')
+    try:
+        ob._notifyOfCopyTo(self, op=1)
+    except ConflictError:
+        raise
+    except:
+        raise CopyError, MessageDialog(
+            title="Rename Error",
+            message=sys.exc_info()[1],
+            action ='manage_main')
 
     notify(ObjectWillBeMovedEvent(ob, self, id, self, new_id))
 
@@ -440,15 +429,7 @@
 
     notify(ObjectMovedEvent(ob, self, id, self, new_id))
 
-    if hasDeprecatedMethods(ob):
-        # BBB
-        if not isFiveMethod(ob._postCopy):
-            warnings.warn(
-                "Calling %s._postCopy(op=1) is deprecated when using Five, "
-                "use an IObjectMovedEvent subscriber instead."
-                % ob.__class__.__name__,
-                DeprecationWarning, stacklevel=2)
-        ob._postCopy(self, op=1)
+    ob._postCopy(self, op=1)
 
     if REQUEST is not None:
         return self.manage_main(self, REQUEST, update_menu=1)
@@ -501,16 +482,7 @@
                 raise CopyError, eNotSupported % escape(orig_id)
 
             try:
-                if hasDeprecatedMethods(ob):
-                    # BBB
-                    if not isFiveMethod(ob._notifyOfCopyTo):
-                        warnings.warn(
-                            "Calling %s._notifyOfCopyTo is deprecated "
-                            "when using Five, use an IObjectCopiedEvent or "
-                            "IObjectWillBeAddedEvent subscriber instead."
-                            % ob.__class__.__name__,
-                            DeprecationWarning, stacklevel=2)
-                    ob._notifyOfCopyTo(self, op=0)
+                ob._notifyOfCopyTo(self, op=0)
             except ConflictError:
                 raise
             except:
@@ -530,16 +502,7 @@
             ob = self._getOb(id)
             ob.wl_clearLocks()
 
-            if hasDeprecatedMethods(ob):
-                # BBB
-                if not isFiveMethod(ob._postCopy):
-                    warnings.warn(
-                        "Calling %s._postCopy(op=0) is deprecated "
-                        "when using Five, "
-                        "use an IObjectCopiedEvent subscriber instead."
-                        % ob.__class__.__name__,
-                        DeprecationWarning, stacklevel=2)
-                ob._postCopy(self, op=0)
+            ob._postCopy(self, op=0)
 
             notify(FiveObjectClonedEvent(ob))
 
@@ -555,16 +518,7 @@
                 raise CopyError, eNotSupported % escape(orig_id)
 
             try:
-                if hasDeprecatedMethods(ob):
-                    # BBB
-                    if not isFiveMethod(ob._notifyOfCopyTo):
-                        warnings.warn(
-                            "Calling %s._notifyOfCopyTo is deprecated "
-                            "when using Five, "
-                            "use an IObjectWillBeMovedEvent subscriber "
-                            "instead." % ob.__class__.__name__,
-                            DeprecationWarning, stacklevel=2)
-                    ob._notifyOfCopyTo(self, op=1)
+                ob._notifyOfCopyTo(self, op=1)
             except ConflictError:
                 raise
             except:
@@ -572,6 +526,7 @@
                     title="Move Error",
                     message=sys.exc_info()[1],
                     action='manage_main')
+
             if not sanity_check(self, ob):
                 raise CopyError, "This object cannot be pasted into itself"
 
@@ -599,16 +554,7 @@
             notify(ObjectMovedEvent(ob, orig_container, orig_id,
                                     self, id))
 
-            if hasDeprecatedMethods(ob):
-                # BBB
-                if not isFiveMethod(ob._postCopy):
-                    warnings.warn(
-                        "Calling %s._postCopy(op=1) is deprecated "
-                        "when using Five, "
-                        "use an IObjectMovedEvent subscriber instead."
-                        % ob.__class__.__name__,
-                        DeprecationWarning, stacklevel=2)
-                ob._postCopy(self, op=1)
+            ob._postCopy(self, op=1)
 
             # try to make ownership implicit if possible
             ob.manage_changeOwnershipType(explicit=0) # XXX event?
@@ -639,21 +585,15 @@
 
     self._verifyObjectPaste(ob)
 
-    if hasDeprecatedMethods(ob):
-        # BBB
-        if not isFiveMethod(ob._notifyOfCopyTo):
-            warnings.warn(
-                "Calling %s._notifyOfCopyTo is deprecated when using Five, "
-                "use an IObjectCopiedEvent or IObjectWillBeAddedEvent "
-                "subscriber instead." % ob.__class__.__name__,
-                DeprecationWarning, stacklevel=2)
-        try:
-            ob._notifyOfCopyTo(self, op=0)
-        except:
-            raise CopyError, MessageDialog(
-                title='Clone Error',
-                message=sys.exc_info()[1],
-                action ='manage_main')
+    try:
+        ob._notifyOfCopyTo(self, op=0)
+    except ConflictError:
+        raise
+    except:
+        raise CopyError, MessageDialog(
+            title="Clone Error",
+            message=sys.exc_info()[1],
+            action='manage_main')
 
     ob = ob._getCopy(self)
     ob._setId(id)
@@ -662,15 +602,7 @@
     self._setObject(id, ob)
     ob = self._getOb(id)
 
-    if hasDeprecatedMethods(ob):
-        # BBB
-        if not isFiveMethod(ob._postCopy):
-            warnings.warn(
-                "Calling %s._postCopy(op=0) is deprecated when using Five, "
-                "use an IObjectCopiedEvent subscriber instead."
-                % ob.__class__.__name__,
-                DeprecationWarning, stacklevel=2)
-        ob._postCopy(self, op=0)
+    ob._postCopy(self, op=0)
 
     notify(FiveObjectClonedEvent(ob))
 
@@ -712,10 +644,6 @@
     patchMethod(BTreeFolder2Base, '_delObject',
                 BT_delObject)
 
-    patchMethod(CopyContainer, '_notifyOfCopyTo',
-                _notifyOfCopyTo)
-    patchMethod(CopyContainer, '_postCopy',
-                _postCopy)
     patchMethod(CopyContainer, 'manage_renameObject',
                 manage_renameObject)
     # XXX also fix OrderSupport._old_manage_renameObject

Modified: z3/Five/branch/efge-object-event/event.zcml
==============================================================================
--- z3/Five/branch/efge-object-event/event.zcml	(original)
+++ z3/Five/branch/efge-object-event/event.zcml	Tue Oct 25 18:54:31 2005
@@ -77,7 +77,4 @@
       factory="zope.app.container.contained.dispatchToSublocations"
       />
 
-  <!-- XXX subscriber (not multi) for _notifOfCopyTo and _postCopy -->
-
-
 </configure>

Modified: z3/Five/branch/efge-object-event/tests/event.txt
==============================================================================
--- z3/Five/branch/efge-object-event/tests/event.txt	(original)
+++ z3/Five/branch/efge-object-event/tests/event.txt	Tue Oct 25 18:54:31 2005
@@ -149,36 +149,28 @@
   'tintin'
   >>> cp = folder.manage_cutObjects('tintin')
   >>> folder.manage_pasteObjects(cp)
-  old _notifyOfCopyTo tintin folder 1
   old manage_beforeDelete tintin tintin folder
   old manage_afterAdd tintin tintin folder
-  old _postCopy tintin folder 1
   [{'new_id': 'tintin', 'id': 'tintin'}]
 
 And we can copy them.
 
   >>> cp = folder.manage_copyObjects('tintin')
   >>> folder.manage_pasteObjects(cp)
-  old _notifyOfCopyTo tintin folder 0
   old manage_afterAdd copy_of_tintin copy_of_tintin folder
-  old _postCopy copy_of_tintin folder 0
   old manage_afterClone copy_of_tintin copy_of_tintin
   [{'new_id': 'copy_of_tintin', 'id': 'tintin'}]
 
 We can rename objects:
 
   >>> folder.manage_renameObject('copy_of_tintin', 'haddock')
-  old _notifyOfCopyTo copy_of_tintin folder 1
   old manage_beforeDelete copy_of_tintin copy_of_tintin folder
   old manage_afterAdd haddock haddock folder
-  old _postCopy haddock folder 1
 
 We can also call manage_clone by hand:
 
   >>> res = folder.manage_clone(folder.tintin, 'tournesol')
-  old _notifyOfCopyTo tintin folder 0
   old manage_afterAdd tournesol tournesol folder
-  old _postCopy tournesol folder 0
   old manage_afterClone tournesol tournesol
   >>> res.getId()
   'tournesol'
@@ -209,30 +201,20 @@
 bottom-up.
 
   >>> folder.manage_renameObject('subfolder', 'bob')
-  old _notifyOfCopyTo subfolder folder 1
   old manage_beforeDelete riri subfolder folder
   old manage_beforeDelete subfolder subfolder folder
   old manage_afterAdd bob bob folder
   old manage_afterAdd riri bob folder
-  old _postCopy bob folder 1
-  >>> 'bob' in folder.objectIds()
-  True
 
 Cloning a tree of objects:
 
   >>> res = folder.manage_clone(folder.bob, 'loulou')
-  old _notifyOfCopyTo bob folder 0
   old manage_afterAdd loulou loulou folder
   old manage_afterAdd riri loulou folder
-  old _postCopy loulou folder 0
   old manage_afterClone loulou loulou
   old manage_afterClone riri loulou
   >>> res.getId()
   'loulou'
-  >>> 'bob' in folder.objectIds()
-  True
-  >>> 'loulou' in folder.objectIds()
-  True
 
 Phase 2
 -------
@@ -282,63 +264,43 @@
   'blueberry'
   >>> cp = folder.manage_cutObjects('blueberry')
   >>> folder.manage_pasteObjects(cp)
-  old _notifyOfCopyTo blueberry folder 1
   ObjectWillBeMovedEvent blueberry
   old manage_beforeDelete blueberry blueberry folder
   ObjectMovedEvent blueberry
   old manage_afterAdd blueberry blueberry folder
-  old _postCopy blueberry folder 1
   [{'new_id': 'blueberry', 'id': 'blueberry'}]
-  >>> 'blueberry' in folder.objectIds()
-  True
 
 Old behavior with events for a copy:
 
   >>> cp = folder.manage_copyObjects('blueberry')
   >>> folder.manage_pasteObjects(cp)
-  old _notifyOfCopyTo blueberry folder 0
   ObjectCopiedEvent copy_of_blueberry
   ObjectWillBeAddedEvent copy_of_blueberry
   ObjectAddedEvent copy_of_blueberry
   old manage_afterAdd copy_of_blueberry copy_of_blueberry folder
-  old _postCopy copy_of_blueberry folder 0
   FiveObjectClonedEvent copy_of_blueberry
   old manage_afterClone copy_of_blueberry copy_of_blueberry
   [{'new_id': 'copy_of_blueberry', 'id': 'blueberry'}]
-  >>> 'blueberry' in folder.objectIds()
-  True
-  >>> 'copy_of_blueberry' in folder.objectIds()
-  True
 
 Old behavior with events for a renaming:
 
   >>> folder.manage_renameObject('copy_of_blueberry', 'myrtille')
-  old _notifyOfCopyTo copy_of_blueberry folder 1
   ObjectWillBeMovedEvent copy_of_blueberry
   old manage_beforeDelete copy_of_blueberry copy_of_blueberry folder
   ObjectMovedEvent myrtille
   old manage_afterAdd myrtille myrtille folder
-  old _postCopy myrtille folder 1
-  >>> 'copy_of_blueberry' in folder.objectIds()
-  False
-  >>> 'myrtille' in folder.objectIds()
-  True
 
 Old behavior with events for a clone:
 
   >>> res = folder.manage_clone(folder.blueberry, 'strawberry')
-  old _notifyOfCopyTo blueberry folder 0
   ObjectCopiedEvent strawberry
   ObjectWillBeAddedEvent strawberry
   ObjectAddedEvent strawberry
   old manage_afterAdd strawberry strawberry folder
-  old _postCopy strawberry folder 0
   FiveObjectClonedEvent strawberry
   old manage_afterClone strawberry strawberry
   >>> res.getId()
   'strawberry'
-  >>> 'strawberry' in folder.objectIds()
-  True
 
 Events are also sent when we work with a BTreeFolder:
 
@@ -374,7 +336,6 @@
 bottom-up.
 
   >>> folder.manage_renameObject('subfolder', 'pluto')
-  old _notifyOfCopyTo subfolder folder 1
   ObjectWillBeMovedEvent subfolder
   ObjectWillBeMovedEvent donald
   old manage_beforeDelete donald subfolder folder
@@ -383,14 +344,10 @@
   old manage_afterAdd pluto pluto folder
   ObjectMovedEvent donald
   old manage_afterAdd donald pluto folder
-  old _postCopy pluto folder 1
-  >>> 'pluto' in folder.objectIds()
-  True
 
 Cloning a tree of objects:
 
   >>> res = folder.manage_clone(folder.pluto, 'mickey')
-  old _notifyOfCopyTo pluto folder 0
   ObjectCopiedEvent mickey
   ObjectWillBeAddedEvent mickey
   ObjectWillBeAddedEvent donald
@@ -398,17 +355,12 @@
   old manage_afterAdd mickey mickey folder
   ObjectAddedEvent donald
   old manage_afterAdd donald mickey folder
-  old _postCopy mickey folder 0
   FiveObjectClonedEvent mickey
   old manage_afterClone mickey mickey
   FiveObjectClonedEvent donald
   old manage_afterClone donald mickey
   >>> res.getId()
   'mickey'
-  >>> 'pluto' in folder.objectIds()
-  True
-  >>> 'mickey' in folder.objectIds()
-  True
 
 If however we specify using ZCML that our classes can react to events,
 the framework won't call manage_afterAdd and manage_beforeDelete
@@ -439,8 +391,6 @@
   ObjectWillBeMovedEvent dilbert
   ObjectMovedEvent dilbert
   [{'new_id': 'dilbert', 'id': 'dilbert'}]
-  >>> 'dilbert' in folder.objectIds()
-  True
 
 And copy:
 
@@ -451,18 +401,12 @@
   ObjectAddedEvent copy_of_dilbert
   FiveObjectClonedEvent copy_of_dilbert
   [{'new_id': 'copy_of_dilbert', 'id': 'dilbert'}]
-  >>> 'dilbert' in folder.objectIds()
-  True
-  >>> 'copy_of_dilbert' in folder.objectIds()
-  True
 
 Then rename:
 
   >>> folder.manage_renameObject('copy_of_dilbert', 'wally')
   ObjectWillBeMovedEvent copy_of_dilbert
   ObjectMovedEvent wally
-  >>> 'wally' in folder.objectIds()
-  True
 
 Or copy using manage_clone:
 
@@ -473,10 +417,6 @@
   FiveObjectClonedEvent phb
   >>> res.getId()
   'phb'
-  >>> 'dilbert' in folder.objectIds()
-  True
-  >>> 'phb' in folder.objectIds()
-  True
 
 Also on a BTreeFolder:
 
@@ -513,8 +453,6 @@
   ObjectWillBeMovedEvent mel
   ObjectMovedEvent firefly
   ObjectMovedEvent mel
-  >>> 'firefly' in folder.objectIds()
-  True
 
 Cloning a tree of objects:
 
@@ -528,10 +466,6 @@
   FiveObjectClonedEvent mel
   >>> res.getId()
   'serenity'
-  >>> 'firefly' in folder.objectIds()
-  True
-  >>> 'serenity' in folder.objectIds()
-  True
 
 Now cleanup all the monkey patches:
 

Modified: z3/Five/branch/efge-object-event/tests/test_event.py
==============================================================================
--- z3/Five/branch/efge-object-event/tests/test_event.py	(original)
+++ z3/Five/branch/efge-object-event/tests/test_event.py	Tue Oct 25 18:54:31 2005
@@ -34,10 +34,6 @@
         return True
     def cb_isCopyable(self):
         return True
-    def _notifyOfCopyTo(self, container, op):
-        print 'old _notifyOfCopyTo', self.getId(), container.getId(), op
-    def _postCopy(self, container, op):
-        print 'old _postCopy', self.getId(), container.getId(), op
     def manage_afterAdd(self, item, container):
         print 'old manage_afterAdd %s %s %s' % (self.getId(), item.getId(),
                                                 container.getId())


More information about the z3-checkins mailing list