diff options
| author | Chris McDonough <chrism@agendaless.com> | 2010-09-05 22:39:20 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2010-09-05 22:39:20 +0000 |
| commit | d89aee7640b1e01a7dda4e603e87461074fbbdd7 (patch) | |
| tree | 16857b0c6fe0b0932903d13c10382732a7bf3b5f /repoze/bfg/tests | |
| parent | 91255626afd43d558cbc4eb74865ccdf0b629417 (diff) | |
| download | pyramid-d89aee7640b1e01a7dda4e603e87461074fbbdd7.tar.gz pyramid-d89aee7640b1e01a7dda4e603e87461074fbbdd7.tar.bz2 pyramid-d89aee7640b1e01a7dda4e603e87461074fbbdd7.zip | |
- Each of the follow methods of the Configurator now allow the
below-named arguments to be passed as "dotted name strings"
(e.g. "foo.bar.baz") rather than as actual implementation objects
that must be imported:
setup_registry
root_factory, authentication_policy, authorization_policy,
debug_logger, locale_negotiator, request_factory,
renderer_globals_factory
add_subscriber
subscriber, iface
derive_view
view
add_view
view, for_, context, request_type, containment
add_route()
view, view_for, factory, for_, view_context
scan
package
add_renderer
factory
set_forbidden_view
view
set_notfound_view
view
set_request_factory
factory
set_renderer_globals_factory()
factory
set_locale_negotiator
negotiator
testing_add_subscriber
event_iface
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_configuration.py | 225 |
1 files changed, 224 insertions, 1 deletions
diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py index 159429a06..be9cd942c 100644 --- a/repoze/bfg/tests/test_configuration.py +++ b/repoze/bfg/tests/test_configuration.py @@ -306,6 +306,16 @@ class ConfiguratorTests(unittest.TestCase): result = reg.getUtility(IDebugLogger) self.assertEqual(logger, result) + def test_setup_registry_debug_logger_dottedname(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import IDebugLogger + reg = Registry() + config = self._makeOne(reg) + config.setup_registry(debug_logger='repoze.bfg.tests') + result = reg.getUtility(IDebugLogger) + import repoze.bfg.tests + self.assertEqual(result, repoze.bfg.tests) + def test_setup_registry_authentication_policy(self): from repoze.bfg.registry import Registry from repoze.bfg.interfaces import IAuthenticationPolicy @@ -316,6 +326,28 @@ class ConfiguratorTests(unittest.TestCase): result = reg.getUtility(IAuthenticationPolicy) self.assertEqual(policy, result) + def test_setup_registry_authentication_policy_dottedname(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import IAuthenticationPolicy + reg = Registry() + config = self._makeOne(reg) + config.setup_registry(authentication_policy='repoze.bfg.tests') + result = reg.getUtility(IAuthenticationPolicy) + import repoze.bfg.tests + self.assertEqual(result, repoze.bfg.tests) + + def test_setup_registry_authorization_policy_dottedname(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import IAuthorizationPolicy + reg = Registry() + config = self._makeOne(reg) + dummy = object() + config.setup_registry(authentication_policy=dummy, + authorization_policy='repoze.bfg.tests') + result = reg.getUtility(IAuthorizationPolicy) + import repoze.bfg.tests + self.assertEqual(result, repoze.bfg.tests) + def test_setup_registry_authorization_policy_only(self): from repoze.bfg.registry import Registry from repoze.bfg.exceptions import ConfigurationError @@ -334,6 +366,25 @@ class ConfiguratorTests(unittest.TestCase): config.setup_registry() self.failUnless(reg.getUtility(IRootFactory)) + def test_setup_registry_dottedname_root_factory(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import IRootFactory + reg = Registry() + config = self._makeOne(reg) + import repoze.bfg.tests + config.setup_registry(root_factory='repoze.bfg.tests') + self.assertEqual(reg.getUtility(IRootFactory), repoze.bfg.tests) + + def test_setup_registry_locale_negotiator_dottedname(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import ILocaleNegotiator + reg = Registry() + config = self._makeOne(reg) + import repoze.bfg.tests + config.setup_registry(locale_negotiator='repoze.bfg.tests') + utility = reg.getUtility(ILocaleNegotiator) + self.assertEqual(utility, repoze.bfg.tests) + def test_setup_registry_locale_negotiator(self): from repoze.bfg.registry import Registry from repoze.bfg.interfaces import ILocaleNegotiator @@ -354,6 +405,16 @@ class ConfiguratorTests(unittest.TestCase): utility = reg.getUtility(IRequestFactory) self.assertEqual(utility, factory) + def test_setup_registry_request_factory_dottedname(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import IRequestFactory + reg = Registry() + config = self._makeOne(reg) + import repoze.bfg.tests + config.setup_registry(request_factory='repoze.bfg.tests') + utility = reg.getUtility(IRequestFactory) + self.assertEqual(utility, repoze.bfg.tests) + def test_setup_registry_renderer_globals_factory(self): from repoze.bfg.registry import Registry from repoze.bfg.interfaces import IRendererGlobalsFactory @@ -364,6 +425,16 @@ class ConfiguratorTests(unittest.TestCase): utility = reg.getUtility(IRendererGlobalsFactory) self.assertEqual(utility, factory) + def test_setup_registry_renderer_globals_factory_dottedname(self): + from repoze.bfg.registry import Registry + from repoze.bfg.interfaces import IRendererGlobalsFactory + reg = Registry() + config = self._makeOne(reg) + import repoze.bfg.tests + config.setup_registry(renderer_globals_factory='repoze.bfg.tests') + utility = reg.getUtility(IRendererGlobalsFactory) + self.assertEqual(utility, repoze.bfg.tests) + def test_setup_registry_alternate_renderers(self): from repoze.bfg.registry import Registry from repoze.bfg.interfaces import IRendererFactory @@ -445,6 +516,18 @@ class ConfiguratorTests(unittest.TestCase): config.registry.notify(object()) self.assertEqual(len(L), 1) + def test_add_subscriber_dottednames(self): + import repoze.bfg.tests + from repoze.bfg.interfaces import INewRequest + config = self._makeOne() + config.add_subscriber('repoze.bfg.tests', + 'repoze.bfg.interfaces.INewRequest') + handlers = list(config.registry.registeredHandlers()) + self.assertEqual(len(handlers), 1) + handler = handlers[0] + self.assertEqual(handler.handler, repoze.bfg.tests) + self.assertEqual(handler.required, (INewRequest,)) + def test_add_object_event_subscriber(self): from zope.interface import implements from zope.interface import Interface @@ -538,7 +621,7 @@ class ConfiguratorTests(unittest.TestCase): self.assertRaises(ConfigurationError, config.add_view, view, '', None, None, True, True) - def test_add_view_with_request_type_string(self): + def test_add_view_with_request_type_methodname_string(self): view = lambda *arg: 'OK' config = self._makeOne() config.add_view(view=view, request_type='GET') @@ -551,6 +634,20 @@ class ConfiguratorTests(unittest.TestCase): result = wrapper(None, request) self.assertEqual(result, 'OK') + def test_add_view_with_request_type(self): + from zope.interface import directlyProvides + from repoze.bfg.interfaces import IRequest + view = lambda *arg: 'OK' + config = self._makeOne() + config.add_view(view=view, + request_type='repoze.bfg.interfaces.IRequest') + wrapper = self._getViewCallable(config) + request = DummyRequest() + self._assertNotFound(wrapper, None, request) + directlyProvides(request, IRequest) + result = wrapper(None, request) + self.assertEqual(result, 'OK') + def test_add_view_view_callable_None_with_renderer(self): config = self._makeOne() self._registerRenderer(config, name='dummy') @@ -568,6 +665,12 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(wrapper.__name__, view.__name__) self.assertEqual(wrapper.__doc__, view.__doc__) + def test_add_view_view_callable_dottedname(self): + config = self._makeOne() + config.add_view(view='repoze.bfg.tests.test_configuration.dummy_view') + wrapper = self._getViewCallable(config) + self.assertEqual(wrapper(None, None), 'OK') + def test_add_view_with_function_callable(self): view = lambda *arg: 'OK' config = self._makeOne() @@ -654,6 +757,22 @@ class ConfiguratorTests(unittest.TestCase): wrapper = self._getViewCallable(config, IDummy) self.assertEqual(wrapper, view) + def test_add_view_context_as_dottedname(self): + view = lambda *arg: 'OK' + config = self._makeOne() + config.add_view(context='repoze.bfg.tests.test_configuration.IDummy', + view=view) + wrapper = self._getViewCallable(config, IDummy) + self.assertEqual(wrapper, view) + + def test_add_view_for__as_dottedname(self): + view = lambda *arg: 'OK' + config = self._makeOne() + config.add_view(for_='repoze.bfg.tests.test_configuration.IDummy', + view=view) + wrapper = self._getViewCallable(config, IDummy) + self.assertEqual(wrapper, view) + def test_add_view_for_as_class(self): # ``for_`` is older spelling for ``context`` from zope.interface import implementedBy @@ -1487,6 +1606,18 @@ class ConfiguratorTests(unittest.TestCase): context = DummyContext() self._assertNotFound(wrapper, context, None) + def test_add_view_with_containment_dottedname(self): + from zope.interface import directlyProvides + view = lambda *arg: 'OK' + config = self._makeOne() + config.add_view( + view=view, + containment='repoze.bfg.tests.test_configuration.IDummy') + wrapper = self._getViewCallable(config) + context = DummyContext() + directlyProvides(context, IDummy) + self.assertEqual(wrapper(context, None), 'OK') + def test_add_view_with_path_info_badregex(self): from repoze.bfg.exceptions import ConfigurationError view = lambda *arg: 'OK' @@ -1590,6 +1721,19 @@ class ConfiguratorTests(unittest.TestCase): self._assertRoute(config, 'name', 'path') self.assertEqual(route.name, 'name') + def test_add_route_with_factory(self): + config = self._makeOne() + factory = object() + route = config.add_route('name', 'path', factory=factory) + self.assertEqual(route.factory, factory) + + def test_add_route_with_factory_dottedname(self): + config = self._makeOne() + route = config.add_route( + 'name', 'path', + factory='repoze.bfg.tests.test_configuration.dummyfactory') + self.assertEqual(route.factory, dummyfactory) + def test_add_route_with_xhr(self): config = self._makeOne() config.add_route('name', 'path', xhr=True) @@ -1942,6 +2086,14 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(config.registry.getUtility(ILocaleNegotiator), negotiator) + def test_set_locale_negotiator_dottedname(self): + from repoze.bfg.interfaces import ILocaleNegotiator + config = self._makeOne() + config.set_locale_negotiator( + 'repoze.bfg.tests.test_configuration.dummyfactory') + self.assertEqual(config.registry.getUtility(ILocaleNegotiator), + dummyfactory) + def test_set_request_factory(self): from repoze.bfg.interfaces import IRequestFactory config = self._makeOne() @@ -1949,6 +2101,30 @@ class ConfiguratorTests(unittest.TestCase): config.set_request_factory(factory) self.assertEqual(config.registry.getUtility(IRequestFactory), factory) + def test_set_request_factory_dottedname(self): + from repoze.bfg.interfaces import IRequestFactory + config = self._makeOne() + config.set_request_factory( + 'repoze.bfg.tests.test_configuration.dummyfactory') + self.assertEqual(config.registry.getUtility(IRequestFactory), + dummyfactory) + + def test_set_renderer_globals_factory(self): + from repoze.bfg.interfaces import IRendererGlobalsFactory + config = self._makeOne() + factory = object() + config.set_renderer_globals_factory(factory) + self.assertEqual(config.registry.getUtility(IRendererGlobalsFactory), + factory) + + def test_set_renderer_globals_factory_dottedname(self): + from repoze.bfg.interfaces import IRendererGlobalsFactory + config = self._makeOne() + config.set_renderer_globals_factory( + 'repoze.bfg.tests.test_configuration.dummyfactory') + self.assertEqual(config.registry.getUtility(IRendererGlobalsFactory), + dummyfactory) + def test_add_translation_dirs_missing_dir(self): from repoze.bfg.exceptions import ConfigurationError config = self._makeOne() @@ -1997,6 +2173,13 @@ class ConfiguratorTests(unittest.TestCase): self.failIf(result is view) self.assertEqual(result(None, None), 'OK') + def test_derive_view_dottedname(self): + config = self._makeOne() + result = config.derive_view( + 'repoze.bfg.tests.test_configuration.dummy_view') + self.failIf(result is dummy_view) + self.assertEqual(result(None, None), 'OK') + def test_derive_view_with_renderer(self): def view(request): return 'OK' @@ -2367,6 +2550,14 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(config.registry.getUtility(IRendererFactory, 'name'), renderer) + def test_add_renderer_dottedname_factory(self): + from repoze.bfg.interfaces import IRendererFactory + config = self._makeOne() + import repoze.bfg.tests + config.add_renderer('name', 'repoze.bfg.tests') + self.assertEqual(config.registry.getUtility(IRendererFactory, 'name'), + repoze.bfg.tests) + def test_scan_integration(self): from zope.interface import alsoProvides from repoze.bfg.interfaces import IRequest @@ -2466,6 +2657,22 @@ class ConfiguratorTests(unittest.TestCase): result = render_view_to_response(ctx, req, 'pod_notinit') self.assertEqual(result, None) + def test_scan_integration_dottedname_package(self): + from zope.interface import alsoProvides + from repoze.bfg.interfaces import IRequest + from repoze.bfg.view import render_view_to_response + config = self._makeOne() + config.scan('repoze.bfg.tests.grokkedapp') + + ctx = DummyContext() + req = DummyRequest() + alsoProvides(req, IRequest) + req.registry = config.registry + + req.method = 'GET' + result = render_view_to_response(ctx, req, '') + self.assertEqual(result, 'grokked') + def test_testing_securitypolicy(self): from repoze.bfg.testing import DummySecurityPolicy config = self._makeOne() @@ -2520,6 +2727,17 @@ class ConfiguratorTests(unittest.TestCase): config.registry.notify(object()) self.assertEqual(len(L), 1) + def test_testing_add_subscriber_dottedname(self): + config = self._makeOne() + L = config.testing_add_subscriber( + 'repoze.bfg.tests.test_configuration.IDummy') + event = DummyEvent() + config.registry.notify(event) + self.assertEqual(len(L), 1) + self.assertEqual(L[0], event) + config.registry.notify(object()) + self.assertEqual(len(L), 1) + def test_testing_add_subscriber_multiple(self): config = self._makeOne() L = config.testing_add_subscriber((Interface, IDummy)) @@ -3999,3 +4217,8 @@ class DummyStaticURLInfo: def add(self, name, spec, **kw): self.added.append((name, spec, kw)) +def dummy_view(request): + return 'OK' + +def dummyfactory(request): + """ """ |
