[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