diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-10-21 16:02:24 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-10-21 16:02:24 +0000 |
| commit | ef5149051623da25d24002132828c658b6dcfee4 (patch) | |
| tree | d608e7156cf2a3b6214951f9cce0f43d185e59ea /repoze/bfg/tests | |
| parent | 7c28d427199a5d2129c129be8f3260cb6bd9f7b0 (diff) | |
| download | pyramid-ef5149051623da25d24002132828c658b6dcfee4.tar.gz pyramid-ef5149051623da25d24002132828c658b6dcfee4.tar.bz2 pyramid-ef5149051623da25d24002132828c658b6dcfee4.zip | |
Add Respond exception.
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 151734b9b..76b33d204 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -334,7 +334,7 @@ class TestRouter(unittest.TestCase): self.assertEqual(start_response.status, '404 Not Found') self.failUnless('404' in result[0]) - def test_call_view_raises_unauthorized(self): + def test_call_view_raises_forbidden(self): from zope.interface import Interface from zope.interface import directlyProvides class IContext(Interface): @@ -372,6 +372,25 @@ class TestRouter(unittest.TestCase): self.assertEqual(start_response.status, '404 Not Found') self.assertEqual(environ['repoze.bfg.message'], 'notfound') + def test_call_view_raises_respond(self): + from zope.interface import Interface + from zope.interface import directlyProvides + class IContext(Interface): + pass + from repoze.bfg.interfaces import IRequest + context = DummyContext() + directlyProvides(context, IContext) + self._registerTraverserFactory(context, subpath=['']) + response = DummyResponse('200 OK') + raised = DummyResponse('201 Created') + view = DummyView(response, raise_respond=raised) + environ = self._makeEnviron() + self._registerView(view, '', IContext, IRequest) + router = self._makeOne() + start_response = DummyStartResponse() + response = router(environ, start_response) + self.assertEqual(start_response.status, '201 Created') + def test_call_eventsends(self): context = DummyContext() self._registerTraverserFactory(context) @@ -466,10 +485,11 @@ class DummyContext: class DummyView: def __init__(self, response, raise_unauthorized=False, - raise_notfound=False): + raise_notfound=False, raise_respond=False): self.response = response self.raise_unauthorized = raise_unauthorized self.raise_notfound = raise_notfound + self.raise_respond = raise_respond def __call__(self, context, request): if self.raise_unauthorized: @@ -478,6 +498,9 @@ class DummyView: if self.raise_notfound: from repoze.bfg.exceptions import NotFound raise NotFound('notfound') + if self.raise_respond: + from repoze.bfg.exceptions import Respond + raise Respond(self.raise_respond) return self.response class DummyRootFactory: @@ -495,9 +518,10 @@ class DummyStartResponse: self.headers = headers class DummyResponse: - status = '200 OK' headerlist = () app_iter = () + def __init__(self, status='200 OK'): + self.status = status class DummyThreadLocalManager: def __init__(self): |
