diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-05-31 03:13:13 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-05-31 03:13:13 +0000 |
| commit | 4936f862588240c51e619a65aa5d574ba29d784b (patch) | |
| tree | f73f81fa6f2603773948598218d32d74c6475ee2 /repoze/bfg/tests | |
| parent | 964b7852d997f6c4aa4b04d54f2847095e4461e8 (diff) | |
| download | pyramid-4936f862588240c51e619a65aa5d574ba29d784b.tar.gz pyramid-4936f862588240c51e619a65aa5d574ba29d784b.tar.bz2 pyramid-4936f862588240c51e619a65aa5d574ba29d784b.zip | |
Features
--------
- It is now possible to register a custom
``repoze.bfg.interfaces.INotFoundView`` for a given application.
This feature replaces the
``repoze.bfg.interfaces.INotFoundAppFactory`` feature previously
described in the Hooks chapter. The INotFoundView will be called
when the framework detects that a view lookup done as a result of a
reqest fails; it should accept a context object and a request
object; it should return an IResponse object (a webob response,
basically). See the Hooks narrative chapter of the BFG docs for
more info.
Deprecations
------------
- The ``repoze.bfg.interfaces.IUnauthorizedAppFactory`` interface has
been deprecated in favor of using the new
``repoze.bfg.interfaces.IForbiddenResponseFactory`` mechanism.
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 86d7d12cf..3009e65dd 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -127,14 +127,24 @@ class RouterTests(unittest.TestCase): router = self._makeOne() self.assertEqual(router.root_policy, rootfactory) - def test_inotfound_appfactory_override(self): + def test_secpol_with_inotfound_appfactory_BBB(self): from repoze.bfg.interfaces import INotFoundAppFactory - def app(): - """ """ - self.registry.registerUtility(app, INotFoundAppFactory) - self._registerRootFactory(None) + environ = self._makeEnviron() + context = DummyContext() + self._registerTraverserFactory(context) + rootfactory = self._registerRootFactory(None) + logger = self._registerLogger() + def factory(): + return 'yo' + self.registry.registerUtility(factory, INotFoundAppFactory) router = self._makeOne() - self.assertEqual(router.notfound_app_factory, app) + self.assertEqual(len(logger.messages), 1) + self.failUnless('INotFoundView' in logger.messages[0]) + class DummyRequest: + def get_response(self, app): + return app + req = DummyRequest() + self.assertEqual(router.notfound_view(None, req), 'yo') def test_iforbidden_responsefactory_override(self): from repoze.bfg.interfaces import IForbiddenView @@ -143,16 +153,16 @@ class RouterTests(unittest.TestCase): self.registry.registerUtility(app, IForbiddenView) self._registerRootFactory(None) router = self._makeOne() - self.assertEqual(router.forbidden_resp_factory, app) + self.assertEqual(router.forbidden_view, app) def test_iforbidden_responsefactory_nooverride(self): context = DummyContext() self._registerRootFactory(None) router = self._makeOne() from repoze.bfg.router import default_forbidden_view - self.assertEqual(router.forbidden_resp_factory, default_forbidden_view) + self.assertEqual(router.forbidden_view, default_forbidden_view) - def test_secpol_with_iunauthorized_appfactory(self): + def test_secpol_with_iunauthorized_appfactory_BBB(self): from repoze.bfg.interfaces import IUnauthorizedAppFactory environ = self._makeEnviron() context = DummyContext() @@ -169,7 +179,7 @@ class RouterTests(unittest.TestCase): def get_response(self, app): return app req = DummyRequest() - self.assertEqual(router.forbidden_resp_factory(None, req), 'yo') + self.assertEqual(router.forbidden_view(None, req), 'yo') def test_call_no_view_registered_no_isettings(self): environ = self._makeEnviron() |
