diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-06-19 11:58:19 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-06-19 11:58:19 +0000 |
| commit | c7b7adbaed26c9d6b2f4f72754da8615f5aa579c (patch) | |
| tree | 7063bd89e1591b606e2eea1d99cfd6e7458784a9 /repoze/bfg/tests | |
| parent | 57ec0ec322c8f1c331a7d6e642a94864b6a39dea (diff) | |
| download | pyramid-c7b7adbaed26c9d6b2f4f72754da8615f5aa579c.tar.gz pyramid-c7b7adbaed26c9d6b2f4f72754da8615f5aa579c.tar.bz2 pyramid-c7b7adbaed26c9d6b2f4f72754da8615f5aa579c.zip | |
- Move BBB logic for registering an
IAuthenticationPolicy/IForbiddenView/INotFoundView based on older
concepts from the router module's ``make_app`` function into the
``repoze.bfg.zcml.zcml_configure`` callable, to service
compatibility with scripts that use "zope.configuration.xmlconfig"
(replace with ``repoze.bfg.zml.zcml_configure`` as necessary to get
BBB logic)
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 76 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 84 |
2 files changed, 90 insertions, 70 deletions
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 1049fa752..389920029 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -15,9 +15,11 @@ class RouterTests(unittest.TestCase): cleanUp() def _registerLogger(self): + from zope.component import getSiteManager + gsm = getSiteManager() from repoze.bfg.interfaces import ILogger logger = DummyLogger() - self.registry.registerUtility(logger, ILogger, name='repoze.bfg.debug') + gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug') return logger def _registerSettings(self, **kw): @@ -155,42 +157,6 @@ class RouterTests(unittest.TestCase): from repoze.bfg.router import default_notfound_view self.assertEqual(router.notfound_view, default_notfound_view) - def test_iunauthorized_appfactory_BBB(self): - from repoze.bfg.interfaces import IUnauthorizedAppFactory - environ = self._makeEnviron() - context = DummyContext() - self._registerTraverserFactory(context) - logger = self._registerLogger() - def factory(): - return 'yo' - self.registry.registerUtility(factory, IUnauthorizedAppFactory) - router = self._makeOne() - self.assertEqual(len(logger.messages), 1) - self.failUnless('IForbiddenView' in logger.messages[0]) - class DummyRequest: - def get_response(self, app): - return app - req = DummyRequest() - self.assertEqual(router.forbidden_view(None, req), 'yo') - - def test_inotfound_appfactory_BBB(self): - from repoze.bfg.interfaces import INotFoundAppFactory - environ = self._makeEnviron() - context = DummyContext() - self._registerTraverserFactory(context) - logger = self._registerLogger() - def factory(): - return 'yo' - self.registry.registerUtility(factory, INotFoundAppFactory) - router = self._makeOne() - self.assertEqual(len(logger.messages), 1) - self.failUnless('notfound_view' 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_call_no_view_registered_no_isettings(self): environ = self._makeEnviron() context = DummyContext() @@ -843,22 +809,6 @@ class MakeAppTests(unittest.TestCase): self.assertEqual(app.registry.getUtility(IAuthorizationPolicy), authzpolicy) - def test_secpol_BBB_registrations(self): - from repoze.bfg.interfaces import IAuthorizationPolicy - from repoze.bfg.interfaces import IAuthenticationPolicy - from repoze.bfg.interfaces import ISecurityPolicy - secpol = DummySecurityPolicy() - from zope.component import getGlobalSiteManager - gsm = getGlobalSiteManager() - gsm.registerUtility(secpol, ISecurityPolicy) - from repoze.bfg.tests import routesapp - logger = DummyLogger() - app = self._callFUT(None, routesapp, registry=gsm, debug_logger=logger) - self.failUnless(app.registry.queryUtility(IAuthenticationPolicy)) - self.failUnless(app.registry.queryUtility(IAuthorizationPolicy)) - self.assertEqual(len(logger.messages), 1) - self.failUnless('ISecurityPolicy' in logger.messages[0]) - class TestDefaultForbiddenView(unittest.TestCase): def _callFUT(self, context, request): from repoze.bfg.router import default_forbidden_view @@ -929,22 +879,11 @@ class DummyResponse: headerlist = () app_iter = () -class DummySecurityPolicy: - pass - class DummyRequest: def __init__(self, environ): self.environ = environ -class DummyLogger: - def __init__(self): - self.messages = [] - def info(self, msg): - self.messages.append(msg) - warn = info - debug = info - class DummyThreadLocalManager: def __init__(self): self.pushed = [] @@ -958,3 +897,12 @@ class DummyThreadLocalManager: class DummyAuthenticationPolicy: pass + +class DummyLogger: + def __init__(self): + self.messages = [] + def info(self, msg): + self.messages.append(msg) + warn = info + debug = info + diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 7fe33e56b..30938d101 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -950,6 +950,10 @@ class TestRouteDirective(unittest.TestCase): class TestZCMLConfigure(unittest.TestCase): i = 0 + def _callFUT(self, path, package): + from repoze.bfg.zcml import zcml_configure + return zcml_configure(path, package) + def setUp(self): cleanUp() self.tempdir = None @@ -979,19 +983,72 @@ class TestZCMLConfigure(unittest.TestCase): sys.path.pop(0) shutil.rmtree(self.tempdir) - def test_file_configure(self): - from repoze.bfg.zcml import file_configure - actions = file_configure('configure.zcml', self.module) + def test_zcml_configure(self): + actions = self._callFUT('configure.zcml', self.module) self.failUnless(actions) self.failUnless(isinstance(actions, list)) - def test_file_configure_nonexistent_configure_dot_zcml(self): + def test_zcml_configure_nonexistent_configure_dot_zcml(self): import os - from repoze.bfg.zcml import file_configure os.remove(os.path.join(self.packagepath, 'configure.zcml')) - self.assertRaises(IOError, file_configure, 'configure.zcml', + self.assertRaises(IOError, self._callFUT, 'configure.zcml', self.module) + def test_secpol_BBB(self): + from repoze.bfg.interfaces import IAuthorizationPolicy + from repoze.bfg.interfaces import IAuthenticationPolicy + from repoze.bfg.interfaces import ISecurityPolicy + from repoze.bfg.interfaces import ILogger + secpol = DummySecurityPolicy() + from zope.component import getGlobalSiteManager + gsm = getGlobalSiteManager() + gsm.registerUtility(secpol, ISecurityPolicy) + logger = DummyLogger() + gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug') + self._callFUT('configure.zcml', self.module) + self.failUnless(gsm.queryUtility(IAuthenticationPolicy)) + self.failUnless(gsm.queryUtility(IAuthorizationPolicy)) + self.assertEqual(len(logger.messages), 1) + self.failUnless('ISecurityPolicy' in logger.messages[0]) + + def test_iunauthorized_appfactory_BBB(self): + from repoze.bfg.interfaces import IUnauthorizedAppFactory + from repoze.bfg.interfaces import IForbiddenView + from zope.component import getGlobalSiteManager + from repoze.bfg.interfaces import ILogger + context = DummyContext() + def factory(): + return 'yo' + logger = DummyLogger() + gsm = getGlobalSiteManager() + gsm.registerUtility(factory, IUnauthorizedAppFactory) + logger = DummyLogger() + gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug') + self._callFUT('configure.zcml', self.module) + self.assertEqual(len(logger.messages), 1) + self.failUnless('forbidden' in logger.messages[0]) + forbidden = gsm.getUtility(IForbiddenView) + self.assertEqual(forbidden(None, DummyRequest()), 'yo') + + def test_inotfound_appfactory_BBB(self): + from repoze.bfg.interfaces import INotFoundAppFactory + from repoze.bfg.interfaces import INotFoundView + from zope.component import getGlobalSiteManager + from repoze.bfg.interfaces import ILogger + context = DummyContext() + def factory(): + return 'yo' + logger = DummyLogger() + gsm = getGlobalSiteManager() + gsm.registerUtility(factory, INotFoundAppFactory) + logger = DummyLogger() + gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug') + self._callFUT('configure.zcml', self.module) + self.assertEqual(len(logger.messages), 1) + self.failUnless('notfound' in logger.messages[0]) + notfound = gsm.getUtility(INotFoundView) + self.assertEqual(notfound(None,DummyRequest()), 'yo') + class TestBFGViewFunctionGrokker(unittest.TestCase): def setUp(self): cleanUp() @@ -1302,3 +1359,18 @@ from zope.interface import Interface class IDummy(Interface): pass +class DummySecurityPolicy: + pass + +class DummyLogger: + def __init__(self): + self.messages = [] + def info(self, msg): + self.messages.append(msg) + warn = info + debug = info + +class DummyRequest: + def get_response(self, app): + return app + |
