summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-22 08:03:37 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-22 08:03:37 +0000
commit2bb9b76c01019f3c82776429c07d34bd1c439f2b (patch)
treefc670cf3479cd1ec47e875b4b707c28a3c15f036 /repoze/bfg/tests
parent9fb1153a2ca9b912f79ac963ef955bcd6058f491 (diff)
downloadpyramid-2bb9b76c01019f3c82776429c07d34bd1c439f2b.tar.gz
pyramid-2bb9b76c01019f3c82776429c07d34bd1c439f2b.tar.bz2
pyramid-2bb9b76c01019f3c82776429c07d34bd1c439f2b.zip
If no subscribers are registered via ``registerHandler`` or
``registerSubscriptionAdapter``, ``notify`` is a noop for speed.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_registry.py33
1 files changed, 26 insertions, 7 deletions
diff --git a/repoze/bfg/tests/test_registry.py b/repoze/bfg/tests/test_registry.py
index 2c26d850e..f54ac934f 100644
--- a/repoze/bfg/tests/test_registry.py
+++ b/repoze/bfg/tests/test_registry.py
@@ -10,15 +10,34 @@ class TestRegistry(unittest.TestCase):
def _makeOne(self):
return self._getTargetClass()()
- def test_notify(self):
+ def test_registerHandler_and_notify(self):
registry = self._makeOne()
+ self.assertEqual(registry._has_listeners, False)
+ from zope.interface import Interface
+ from zope.interface import implements
+ class IFoo(Interface):
+ pass
+ class FooEvent(object):
+ implements(IFoo)
L = []
- def subscribers(events, *arg):
- L.extend(events)
- return ['abc']
- registry.subscribers = subscribers
- registry.notify('123')
- self.assertEqual(L, ['123'])
+ def f(event):
+ L.append(event)
+ registry.registerHandler(f, [IFoo])
+ self.assertEqual(registry._has_listeners, True)
+ event = FooEvent()
+ registry.notify(event)
+ self.assertEqual(L, [event])
+
+ def test_registerSubscriptionAdapter_and_notify(self):
+ registry = self._makeOne()
+ self.assertEqual(registry._has_listeners, False)
+ from zope.interface import Interface
+ class EventHandler:
+ pass
+ class IFoo(Interface):
+ pass
+ registry.registerSubscriptionAdapter(EventHandler, [IFoo], Interface)
+ self.assertEqual(registry._has_listeners, True)
class TestPopulateRegistry(unittest.TestCase):
def setUp(self):