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

efge at codespeak.net efge at codespeak.net
Tue Oct 25 19:20:07 CEST 2005


Author: efge
Date: Tue Oct 25 19:20:06 2005
New Revision: 18969

Modified:
   z3/Five/branch/efge-object-event/event.py
   z3/Five/branch/efge-object-event/tests/event.txt
   z3/Five/branch/efge-object-event/tests/test_event.py
Log:
Make renaming on OrderedFolder work correctly.

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 19:20:06 2005
@@ -620,6 +620,7 @@
 
 from OFS.ObjectManager import ObjectManager
 from OFS.CopySupport import CopyContainer
+from OFS.OrderSupport import OrderSupport
 from Products.BTreeFolder2.BTreeFolder2 import BTreeFolder2Base
 
 def doMonkies(transitional):
@@ -646,12 +647,14 @@
 
     patchMethod(CopyContainer, 'manage_renameObject',
                 manage_renameObject)
-    # XXX also fix OrderSupport._old_manage_renameObject
     patchMethod(CopyContainer, 'manage_pasteObjects',
                 manage_pasteObjects)
     patchMethod(CopyContainer, 'manage_clone',
                 manage_clone)
 
+    patchMethod(OrderSupport, '_old_manage_renameObject',
+                manage_renameObject)
+
     zcml.load_config('event.zcml', Products.Five)
 
     addCleanUp(undoMonkies)
@@ -660,7 +663,7 @@
     method = getattr(class_, name, None)
     if isFiveMethod(method):
         return
-    setattr(class_, '__five_original_' + name, method)
+    setattr(class_, FIVE_ORIGINAL_PREFIX + name, method)
     setattr(class_, name, new_method)
     new_method.__five_method__ = True
     _monkied.append((class_, name))

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 19:20:06 2005
@@ -86,6 +86,7 @@
 
   >>> from Products.Five.tests.test_event import MyApp, MyContent
   >>> from Products.Five.tests.test_event import MyFolder, MyBTreeFolder
+  >>> from Products.Five.tests.test_event import MyOrderedFolder
 
   >>> app = MyApp('')
   >>> root['app'] = app
@@ -467,6 +468,31 @@
   >>> res.getId()
   'serenity'
 
+OrderedFolder has the same renaming behavior than before:
+
+  >>> ofolder = MyOrderedFolder('ofolder')
+  >>> app._setObject('ofolder', ofolder)
+  ObjectWillBeAddedEvent ofolder
+  ObjectAddedEvent ofolder
+  old manage_afterAdd ofolder ofolder
+  'ofolder'
+  >>> ob1 = MyContent('ob1')
+  >>> ofolder._setObject('ob1', ob1)
+  ObjectWillBeAddedEvent ob1
+  ObjectAddedEvent ob1
+  'ob1'
+  >>> ob2 = MyContent('ob2')
+  >>> ofolder._setObject('ob2', ob2)
+  ObjectWillBeAddedEvent ob2
+  ObjectAddedEvent ob2
+  'ob2'
+  >>> ofolder.manage_renameObject('ob1', 'ob4')
+  ObjectWillBeMovedEvent ob1
+  ObjectMovedEvent ob4
+  >>> ofolder.objectIds()
+  ['ob4', 'ob2']
+
+
 Now cleanup all the monkey patches:
 
   >>> undoMonkies()

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 19:20:06 2005
@@ -23,8 +23,9 @@
 # These classes aren't defined in the doctest because otherwise
 # they wouldn't be picklable, and we need that to test copy/paste.
 
-from OFS.Folder import Folder
 from OFS.SimpleItem import SimpleItem
+from OFS.Folder import Folder
+from OFS.OrderedFolder import OrderedFolder
 from Products.BTreeFolder2.BTreeFolder2 import BTreeFolder2
 
 class NotifyBase(object):
@@ -53,6 +54,9 @@
 class MyFolder(NotifyBase, Folder):
     pass
 
+class MyOrderedFolder(NotifyBase, OrderedFolder):
+    pass
+
 class MyBTreeFolder(NotifyBase, BTreeFolder2):
     def _verifyObjectPaste(self, object, validate_src=1):
         pass


More information about the z3-checkins mailing list