summaryrefslogtreecommitdiff
path: root/repoze
diff options
context:
space:
mode:
Diffstat (limited to 'repoze')
-rw-r--r--repoze/bfg/testing.py7
-rw-r--r--repoze/bfg/tests/test_testing.py17
2 files changed, 21 insertions, 3 deletions
diff --git a/repoze/bfg/testing.py b/repoze/bfg/testing.py
index 26690c48d..a7fc12827 100644
--- a/repoze/bfg/testing.py
+++ b/repoze/bfg/testing.py
@@ -44,10 +44,11 @@ def registerEventListener(event_iface=Interface):
matches ``event_iface``, that event will be appended to the list.
You can then compare the values in the list to expected event
notifications. This method is useful when testing code that wants
- to call ``zope.component.event.dispatch``."""
+ to call ``zope.component.event.dispatch`` or
+ ``zope.component.event.objectEventNotify``."""
L = []
- def subscriber(event):
- L.append(event)
+ def subscriber(*event):
+ L.extend(event)
registerSubscriber(subscriber, event_iface)
return L
diff --git a/repoze/bfg/tests/test_testing.py b/repoze/bfg/tests/test_testing.py
index abd955c96..598436c1a 100644
--- a/repoze/bfg/tests/test_testing.py
+++ b/repoze/bfg/tests/test_testing.py
@@ -74,6 +74,23 @@ class TestTestingFunctions(unittest.TestCase, PlacelessSetup):
self.assertEqual(L[0], event)
dispatch(object())
self.assertEqual(len(L), 1)
+
+ def test_registerEventListener_multiple(self):
+ from repoze.bfg import testing
+ from zope.interface import implements
+ from zope.interface import Interface
+ class IEvent(Interface):
+ pass
+ class Event:
+ object = 'foo'
+ implements(IEvent)
+ L = testing.registerEventListener((Interface, IEvent))
+ from zope.component.event import objectEventNotify
+ event = Event()
+ objectEventNotify(event)
+ self.assertEqual(len(L), 2)
+ self.assertEqual(L[0], 'foo')
+ self.assertEqual(L[1], event)
def test_registerEventListener_defaults(self):
from repoze.bfg import testing