diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-31 06:17:31 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-31 06:17:31 +0000 |
| commit | a0423aedb4abaf12b4008c0b229ec0ecad4ddfd8 (patch) | |
| tree | 6193a7bce3bdb05c6c9e81921d592b769cd071b1 /repoze/bfg/tests | |
| parent | 54302499c5ff609b4c615a7ae1d341e7d652dae3 (diff) | |
| download | pyramid-a0423aedb4abaf12b4008c0b229ec0ecad4ddfd8.tar.gz pyramid-a0423aedb4abaf12b4008c0b229ec0ecad4ddfd8.tar.bz2 pyramid-a0423aedb4abaf12b4008c0b229ec0ecad4ddfd8.zip | |
- Add event sends for INewRequest and INewResponse. See the
events.rst chapter in the documentation's ``api`` directory.
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_events.py | 60 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 33 |
2 files changed, 93 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_events.py b/repoze/bfg/tests/test_events.py new file mode 100644 index 000000000..770f1afeb --- /dev/null +++ b/repoze/bfg/tests/test_events.py @@ -0,0 +1,60 @@ +import unittest + +class NewRequestEventTests(unittest.TestCase): + def _getTargetClass(self): + from repoze.bfg.events import NewRequest + return NewRequest + + def _makeOne(self, request): + return self._getTargetClass()(request) + + def test_class_implements(self): + from repoze.bfg.interfaces import INewRequest + from zope.interface.verify import verifyClass + klass = self._getTargetClass() + verifyClass(INewRequest, klass) + + def test_instance_implements(self): + from repoze.bfg.interfaces import INewRequest + from zope.interface.verify import verifyObject + request = DummyRequest() + inst = self._makeOne(request) + verifyObject(INewRequest, inst) + + def test_ctor(self): + request = DummyRequest() + inst = self._makeOne(request) + self.assertEqual(inst.request, request) + +class NewResponseEventTests(unittest.TestCase): + def _getTargetClass(self): + from repoze.bfg.events import NewResponse + return NewResponse + + def _makeOne(self, response): + return self._getTargetClass()(response) + + def test_class_implements(self): + from repoze.bfg.interfaces import INewResponse + from zope.interface.verify import verifyClass + klass = self._getTargetClass() + verifyClass(INewResponse, klass) + + def test_instance_implements(self): + from repoze.bfg.interfaces import INewResponse + from zope.interface.verify import verifyObject + response = DummyResponse() + inst = self._makeOne(response) + verifyObject(INewResponse, inst) + + def test_ctor(self): + response = DummyResponse() + inst = self._makeOne(response) + self.assertEqual(inst.response, response) + +class DummyRequest: + pass + +class DummyResponse: + pass + diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 4b1e914b7..d2907ef8a 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -33,6 +33,11 @@ class RouterTests(unittest.TestCase, PlacelessSetup): from repoze.bfg.interfaces import ISecurityPolicy gsm.registerUtility(secpol, ISecurityPolicy) + def _registerEventListener(self, listener, iface): + import zope.component + gsm = zope.component.getGlobalSiteManager() + gsm.registerHandler(listener, (iface,)) + def _getTargetClass(self): from repoze.bfg.router import Router return Router @@ -232,6 +237,34 @@ class RouterTests(unittest.TestCase, PlacelessSetup): self.failUnless('permission' in result[0]) self.assertEqual(permissionfactory.checked_with, secpol) + def test_call_eventsends(self): + rootpolicy = make_rootpolicy(None) + context = DummyContext() + traversalfactory = make_traversal_factory(context, '', []) + response = DummyResponse() + response.app_iter = ['Hello world'] + view = make_view(response) + environ = self._makeEnviron() + self._registerTraverserFactory(traversalfactory, '', None, None) + self._registerView(view, '', None, None) + from repoze.bfg.interfaces import INewRequest + from repoze.bfg.interfaces import INewResponse + request_events = [] + response_events = [] + def handle_request(event): + request_events.append(event) + def handle_response(event): + response_events.append(event) + self._registerEventListener(handle_request, INewRequest) + self._registerEventListener(handle_response, INewResponse) + router = self._makeOne(rootpolicy, None) + start_response = DummyStartResponse() + result = router(environ, start_response) + self.assertEqual(len(request_events), 1) + self.assertEqual(request_events[0].request.environ, environ) + self.assertEqual(len(response_events), 1) + self.assertEqual(response_events[0].response, response) + class MakeAppTests(unittest.TestCase, PlacelessSetup): def setUp(self): PlacelessSetup.setUp(self) |
