[Zope-Checkins]
SVN: Zope/branches/2.10/lib/python/OFS/tests/testCopySupportEvents.py
Merged trunk r74108:74109 into 2.10 branch.
Stefan H. Holek
stefan at epy.co.at
Thu Apr 12 14:34:00 EDT 2007
Log message for revision 74110:
Merged trunk r74108:74109 into 2.10 branch.
Repair (and simplify) tests in response to
http://www.zope.org/Collectors/Zope/2308.
Changed:
U Zope/branches/2.10/lib/python/OFS/tests/testCopySupportEvents.py
-=-
Modified: Zope/branches/2.10/lib/python/OFS/tests/testCopySupportEvents.py
===================================================================
--- Zope/branches/2.10/lib/python/OFS/tests/testCopySupportEvents.py 2007-04-12 18:19:57 UTC (rev 74109)
+++ Zope/branches/2.10/lib/python/OFS/tests/testCopySupportEvents.py 2007-04-12 18:33:59 UTC (rev 74110)
@@ -15,15 +15,7 @@
from zope import interface
from zope import component
-from zope.app.container.interfaces import IObjectAddedEvent
-from zope.app.container.interfaces import IObjectMovedEvent
-from zope.app.container.interfaces import IObjectRemovedEvent
-from zope.app.container.interfaces import IContainerModifiedEvent
-from zope.lifecycleevent.interfaces import IObjectCopiedEvent
-from OFS.interfaces import IObjectWillBeAddedEvent
-from OFS.interfaces import IObjectWillBeMovedEvent
-from OFS.interfaces import IObjectWillBeRemovedEvent
-from OFS.interfaces import IObjectClonedEvent
+from zope.component.interfaces import IObjectEvent
from zope.testing import cleanup
from Products.Five import zcml
@@ -35,7 +27,7 @@
def reset(self):
self._called = []
def trace(self, ob, event):
- self._called.append((ob.getId(), event))
+ self._called.append((ob.getId(), event.__class__.__name__))
def called(self):
return self._called
@@ -62,57 +54,6 @@
pass # Always allow
-def objectAddedEvent(ob, event):
- eventlog.trace(ob, 'ObjectAddedEvent')
-
-def objectCopiedEvent(ob, event):
- eventlog.trace(ob, 'ObjectCopiedEvent')
-
-def objectMovedEvent(ob, event):
- if IObjectAddedEvent.providedBy(event):
- return
- if IObjectRemovedEvent.providedBy(event):
- return
- eventlog.trace(ob, 'ObjectMovedEvent')
-
-def objectRemovedEvent(ob, event):
- eventlog.trace(ob, 'ObjectRemovedEvent')
-
-def containerModifiedEvent(ob, event):
- eventlog.trace(ob, 'ContainerModifiedEvent')
-
-def objectWillBeAddedEvent(ob, event):
- eventlog.trace(ob, 'ObjectWillBeAddedEvent')
-
-def objectWillBeMovedEvent(ob, event):
- if IObjectWillBeAddedEvent.providedBy(event):
- return
- if IObjectWillBeRemovedEvent.providedBy(event):
- return
- eventlog.trace(ob, 'ObjectWillBeMovedEvent')
-
-def objectWillBeRemovedEvent(ob, event):
- eventlog.trace(ob, 'ObjectWillBeRemovedEvent')
-
-def objectClonedEvent(ob, event):
- eventlog.trace(ob, 'ObjectClonedEvent')
-
-
-def setUpItemSubscribers(interface):
- component.provideHandler(objectAddedEvent, (interface, IObjectAddedEvent))
- component.provideHandler(objectCopiedEvent, (interface, IObjectCopiedEvent))
- component.provideHandler(objectMovedEvent, (interface, IObjectMovedEvent))
- component.provideHandler(objectRemovedEvent, (interface, IObjectRemovedEvent))
- component.provideHandler(objectWillBeAddedEvent, (interface, IObjectWillBeAddedEvent))
- component.provideHandler(objectWillBeMovedEvent, (interface, IObjectWillBeMovedEvent))
- component.provideHandler(objectWillBeRemovedEvent, (interface, IObjectWillBeRemovedEvent))
- component.provideHandler(objectClonedEvent, (interface, IObjectClonedEvent))
-
-def setUpFolderSubscribers(interface):
- setUpItemSubscribers(interface)
- component.provideHandler(containerModifiedEvent, (interface, IContainerModifiedEvent))
-
-
class EventLayer:
@classmethod
@@ -120,8 +61,8 @@
cleanup.cleanUp()
zcml._initialized = 0
zcml.load_site()
- setUpItemSubscribers(ITestItem)
- setUpFolderSubscribers(ITestFolder)
+ component.provideHandler(eventlog.trace, (ITestItem, IObjectEvent))
+ component.provideHandler(eventlog.trace, (ITestFolder, IObjectEvent))
@classmethod
def tearDown(cls):
@@ -271,19 +212,26 @@
# Reset event log
eventlog.reset()
+ def assertEqual(self, first, second, msg=None):
+ # XXX: Compare sets as the order of event handlers cannot be
+ # relied on between objects.
+ if not set(first) == set(second):
+ raise self.failureException, \
+ (msg or '%r != %r' % (first, second))
+
def test_1_Clone(self):
# Test clone
self.subfolder.manage_clone(self.folder.myfolder, 'myfolder')
self.assertEqual(eventlog.called(),
- [#('mydoc', 'ObjectCopiedEvent'),
- ('myfolder', 'ObjectCopiedEvent'),
- ('mydoc', 'ObjectWillBeAddedEvent'),
+ [('myfolder', 'ObjectCopiedEvent'),
+ #('mydoc', 'ObjectCopiedEvent'),
('myfolder', 'ObjectWillBeAddedEvent'),
- ('mydoc', 'ObjectAddedEvent'),
+ ('mydoc', 'ObjectWillBeAddedEvent'),
('myfolder', 'ObjectAddedEvent'),
+ ('mydoc', 'ObjectAddedEvent'),
('subfolder', 'ContainerModifiedEvent'),
- ('mydoc', 'ObjectClonedEvent'),
- ('myfolder', 'ObjectClonedEvent')]
+ ('myfolder', 'ObjectClonedEvent'),
+ ('mydoc', 'ObjectClonedEvent')]
)
def test_2_CopyPaste(self):
@@ -291,15 +239,15 @@
cb = self.folder.manage_copyObjects(['myfolder'])
self.subfolder.manage_pasteObjects(cb)
self.assertEqual(eventlog.called(),
- [#('mydoc', 'ObjectCopiedEvent'),
- ('myfolder', 'ObjectCopiedEvent'),
- ('mydoc', 'ObjectWillBeAddedEvent'),
+ [('myfolder', 'ObjectCopiedEvent'),
+ #('mydoc', 'ObjectCopiedEvent'),
('myfolder', 'ObjectWillBeAddedEvent'),
- ('mydoc', 'ObjectAddedEvent'),
+ ('mydoc', 'ObjectWillBeAddedEvent'),
('myfolder', 'ObjectAddedEvent'),
+ ('mydoc', 'ObjectAddedEvent'),
('subfolder', 'ContainerModifiedEvent'),
- ('mydoc', 'ObjectClonedEvent'),
- ('myfolder', 'ObjectClonedEvent')]
+ ('myfolder', 'ObjectClonedEvent'),
+ ('mydoc', 'ObjectClonedEvent')]
)
def test_3_CutPaste(self):
@@ -307,10 +255,10 @@
cb = self.folder.manage_cutObjects(['myfolder'])
self.subfolder.manage_pasteObjects(cb)
self.assertEqual(eventlog.called(),
- [('mydoc', 'ObjectWillBeMovedEvent'),
- ('myfolder', 'ObjectWillBeMovedEvent'),
- ('mydoc', 'ObjectMovedEvent'),
+ [('myfolder', 'ObjectWillBeMovedEvent'),
+ ('mydoc', 'ObjectWillBeMovedEvent'),
('myfolder', 'ObjectMovedEvent'),
+ ('mydoc', 'ObjectMovedEvent'),
('folder', 'ContainerModifiedEvent'),
('subfolder', 'ContainerModifiedEvent')]
)
@@ -319,10 +267,10 @@
# Test rename
self.folder.manage_renameObject('myfolder', 'yourfolder')
self.assertEqual(eventlog.called(),
- [('mydoc', 'ObjectWillBeMovedEvent'),
- ('myfolder', 'ObjectWillBeMovedEvent'),
- ('mydoc', 'ObjectMovedEvent'),
+ [('myfolder', 'ObjectWillBeMovedEvent'),
+ ('mydoc', 'ObjectWillBeMovedEvent'),
('yourfolder', 'ObjectMovedEvent'),
+ ('mydoc', 'ObjectMovedEvent'),
('folder', 'ContainerModifiedEvent')]
)
@@ -333,15 +281,15 @@
req.environ['HTTP_DESTINATION'] = '%s/subfolder/myfolder' % self.folder.absolute_url()
self.folder.myfolder.COPY(req, req.RESPONSE)
self.assertEqual(eventlog.called(),
- [#('mydoc', 'ObjectCopiedEvent'),
- ('myfolder', 'ObjectCopiedEvent'),
- ('mydoc', 'ObjectWillBeAddedEvent'),
+ [('myfolder', 'ObjectCopiedEvent'),
+ #('mydoc', 'ObjectCopiedEvent'),
('myfolder', 'ObjectWillBeAddedEvent'),
- ('mydoc', 'ObjectAddedEvent'),
+ ('mydoc', 'ObjectWillBeAddedEvent'),
('myfolder', 'ObjectAddedEvent'),
+ ('mydoc', 'ObjectAddedEvent'),
('subfolder', 'ContainerModifiedEvent'),
- ('mydoc', 'ObjectClonedEvent'),
- ('myfolder', 'ObjectClonedEvent')]
+ ('myfolder', 'ObjectClonedEvent'),
+ ('mydoc', 'ObjectClonedEvent')]
)
def test_6_MOVE(self):
@@ -351,10 +299,10 @@
req.environ['HTTP_DESTINATION'] = '%s/subfolder/myfolder' % self.folder.absolute_url()
self.folder.myfolder.MOVE(req, req.RESPONSE)
self.assertEqual(eventlog.called(),
- [('mydoc', 'ObjectWillBeMovedEvent'),
- ('myfolder', 'ObjectWillBeMovedEvent'),
- ('mydoc', 'ObjectMovedEvent'),
+ [('myfolder', 'ObjectWillBeMovedEvent'),
+ ('mydoc', 'ObjectWillBeMovedEvent'),
('myfolder', 'ObjectMovedEvent'),
+ ('mydoc', 'ObjectMovedEvent'),
('folder', 'ContainerModifiedEvent'),
('subfolder', 'ContainerModifiedEvent')]
)
@@ -365,10 +313,10 @@
req['URL'] = '%s/myfolder' % self.folder.absolute_url()
self.folder.myfolder.DELETE(req, req.RESPONSE)
self.assertEqual(eventlog.called(),
- [('mydoc', 'ObjectWillBeRemovedEvent'),
- ('myfolder', 'ObjectWillBeRemovedEvent'),
- ('mydoc', 'ObjectRemovedEvent'),
+ [('myfolder', 'ObjectWillBeRemovedEvent'),
+ ('mydoc', 'ObjectWillBeRemovedEvent'),
('myfolder', 'ObjectRemovedEvent'),
+ ('mydoc', 'ObjectRemovedEvent'),
('folder', 'ContainerModifiedEvent')]
)
More information about the Zope-Checkins
mailing list