From a7f13ff10e0eae01b958738e41d9d172af2916dd Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 1 Jun 2009 07:20:48 +0000 Subject: - It was not possible to register a custom ``IRoutesContextFactory`` for use as a default context factory as documented in the "Hooks" chapter. --- repoze/bfg/tests/test_router.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'repoze/bfg/tests/test_router.py') diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 09c3f7c1f..d07efcc69 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -911,6 +911,38 @@ class MakeAppTests(unittest.TestCase): self.assertEqual(len(logger.messages), 1) self.failUnless('ISecurityPolicy' in logger.messages[0]) + def test_custom_default_context_factory_nodecorate(self): + from repoze.bfg.tests import routesapp + from zope.component import getGlobalSiteManager + from repoze.bfg.interfaces import IRoutesContextFactory + from repoze.bfg.interfaces import IRoutesMapper + class Dummy(object): + pass + gsm = getGlobalSiteManager() + gsm.registerUtility(Dummy, IRoutesContextFactory) + app = self._callFUT(None, routesapp, registry=gsm) + mapper = gsm.getUtility(IRoutesMapper) + self.assertEqual(mapper.default_context_factory, + Dummy) + self.assertEqual(mapper.decorate_context, True) + + def test_custom_default_context_factory_decorate(self): + from repoze.bfg.tests import routesapp + from zope.component import getGlobalSiteManager + from repoze.bfg.interfaces import IRoutesContextFactory + from repoze.bfg.interfaces import IRoutesMapper + from repoze.bfg.interfaces import IRoutesContext + from zope.interface import implements + class Dummy(object): + implements(IRoutesContext) + gsm = getGlobalSiteManager() + gsm.registerUtility(Dummy, IRoutesContextFactory) + app = self._callFUT(None, routesapp, registry=gsm) + mapper = gsm.getUtility(IRoutesMapper) + self.assertEqual(mapper.default_context_factory, + Dummy) + self.assertEqual(mapper.decorate_context, False) + class TestDefaultForbiddenView(unittest.TestCase): def _callFUT(self, context, request): from repoze.bfg.router import default_forbidden_view -- cgit v1.2.3