diff options
Diffstat (limited to 'repoze')
| -rw-r--r-- | repoze/bfg/testing.py | 7 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_testing.py | 17 |
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 |
