summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-05-31 03:13:13 +0000
committerChris McDonough <chrism@agendaless.com>2009-05-31 03:13:13 +0000
commit4936f862588240c51e619a65aa5d574ba29d784b (patch)
treef73f81fa6f2603773948598218d32d74c6475ee2 /repoze/bfg/tests
parent964b7852d997f6c4aa4b04d54f2847095e4461e8 (diff)
downloadpyramid-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.py30
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()