From eac7c470021b647d63c2e2af8acd6cebd738f2a4 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 19 Nov 2009 10:44:55 +0000 Subject: Rearrange things to try to avoid circular import deps. --- repoze/bfg/tests/test_configuration.py | 63 +++++++----------------------- repoze/bfg/tests/test_router.py | 70 ++++++++++++---------------------- repoze/bfg/tests/test_traversal.py | 24 ++++++++++++ 3 files changed, 62 insertions(+), 95 deletions(-) (limited to 'repoze/bfg/tests') diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py index 1916fe11d..a1f60a91f 100644 --- a/repoze/bfg/tests/test_configuration.py +++ b/repoze/bfg/tests/test_configuration.py @@ -38,7 +38,7 @@ class ConfiguratorTests(unittest.TestCase): def _callDefaultConfiguration(self, *arg, **kw): inst = self._makeOne() - inst.default_configuration(*arg, **kw) + inst.declarative(*arg, **kw) return inst.reg def _getRouteRequestIface(self, config, name): @@ -292,7 +292,7 @@ class ConfiguratorTests(unittest.TestCase): request.params = {'param':'1'} self.assertEqual(wrapper(ctx, request), 'view8') - def test_view_with_relative_template_renderer(self): + def test_view_with_template_renderer(self): class view(object): def __init__(self, context, request): self.request = request @@ -302,24 +302,24 @@ class ConfiguratorTests(unittest.TestCase): return {'a':'1'} config = self._makeOne() renderer = self._registerRenderer(config) - fixture = 'fixtures/minimal.txt' + fixture = 'repoze.bfg.tests:fixtures/minimal.txt' config.view(view=view, renderer=fixture) wrapper = self._getViewCallable(config) request = DummyRequest() result = wrapper(None, request) self.assertEqual(result.body, 'Hello!') - self.assertEqual(renderer.path, 'fixtures/minimal.txt') + self.assertEqual(renderer.path, 'repoze.bfg.tests:fixtures/minimal.txt') - def test_view_with_relative_template_renderer_no_callable(self): + def test_view_with_template_renderer_no_callable(self): config = self._makeOne() renderer = self._registerRenderer(config) - fixture = 'fixtures/minimal.txt' + fixture = 'repoze.bfg.tests:fixtures/minimal.txt' config.view(view=None, renderer=fixture) wrapper = self._getViewCallable(config) request = DummyRequest() result = wrapper(None, request) self.assertEqual(result.body, 'Hello!') - self.assertEqual(renderer.path, 'fixtures/minimal.txt') + self.assertEqual(renderer.path, 'repoze.bfg.tests:fixtures/minimal.txt') def test_view_with_request_type_as_iface(self): def view(context, request): @@ -1162,43 +1162,36 @@ class ConfiguratorTests(unittest.TestCase): self.failUnless(registry.queryUtility(IFixture)) # only in c.zcml def test_default_config_fixtureapp_explicit_filename(self): - manager = DummyRegistryManager() from repoze.bfg.tests import fixtureapp rootfactory = DummyRootFactory(None) registry = self._callDefaultConfiguration( - rootfactory, fixtureapp, filename='another.zcml', - manager=manager) + rootfactory, fixtureapp, filename='another.zcml') from repoze.bfg.tests.fixtureapp.models import IFixture self.failIf(registry.queryUtility(IFixture)) # only in c.zcml def test_default_config_fixtureapp_explicit_filename_in_settings(self): import os - manager = DummyRegistryManager() rootfactory = DummyRootFactory(None) from repoze.bfg.tests import fixtureapp zcmlfile = os.path.join(os.path.dirname(fixtureapp.__file__), 'another.zcml') registry = self._callDefaultConfiguration( rootfactory, fixtureapp, filename='configure.zcml', - settings={'configure_zcml':zcmlfile}, - manager=manager) + settings={'configure_zcml':zcmlfile}) from repoze.bfg.tests.fixtureapp.models import IFixture self.failIf(registry.queryUtility(IFixture)) # only in c.zcml def test_default_config_fixtureapp_explicit_specification_in_settings(self): - manager = DummyRegistryManager() rootfactory = DummyRootFactory(None) from repoze.bfg.tests import fixtureapp zcmlfile = 'repoze.bfg.tests.fixtureapp.subpackage:yetanother.zcml' registry = self._callDefaultConfiguration( rootfactory, fixtureapp, filename='configure.zcml', - settings={'configure_zcml':zcmlfile}, - manager=manager) + settings={'configure_zcml':zcmlfile}) from repoze.bfg.tests.fixtureapp.models import IFixture self.failIf(registry.queryUtility(IFixture)) # only in c.zcml def test_default_config_fixtureapp_filename_hascolon_isabs(self): - manager = DummyRegistryManager() rootfactory = DummyRootFactory(None) from repoze.bfg.tests import fixtureapp zcmlfile = 'repoze.bfg.tests.fixtureapp.subpackage:yetanother.zcml' @@ -1212,32 +1205,28 @@ class ConfiguratorTests(unittest.TestCase): fixtureapp, filename='configure.zcml', settings={'configure_zcml':zcmlfile}, - manager=manager, os=os) def test_default_config_custom_settings(self): - manager = DummyRegistryManager() settings = {'mysetting':True} from repoze.bfg.tests import fixtureapp rootfactory = DummyRootFactory(None) registry = self._callDefaultConfiguration( - rootfactory, fixtureapp, settings=settings, - manager=manager) + rootfactory, fixtureapp, settings=settings) from repoze.bfg.interfaces import ISettings settings = registry.getUtility(ISettings) self.assertEqual(settings.reload_templates, False) self.assertEqual(settings.debug_authorization, False) self.assertEqual(settings.mysetting, True) - def test_default_config_registrations(self): + def test_declarative_registrations(self): manager = DummyRegistryManager() settings = {'reload_templates':True, 'debug_authorization':True} from repoze.bfg.tests import fixtureapp rootfactory = DummyRootFactory(None) registry = self._callDefaultConfiguration( - rootfactory, fixtureapp, settings=settings, - manager=manager) + rootfactory, fixtureapp, settings=settings) from repoze.bfg.interfaces import ISettings from repoze.bfg.interfaces import ILogger from repoze.bfg.interfaces import IRootFactory @@ -1248,7 +1237,6 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(settings.reload_templates, True) self.assertEqual(settings.debug_authorization, True) self.assertEqual(rootfactory, rootfactory) - self.failUnless(manager.pushed and manager.popped) def test_default_config_routes_in_config(self): from repoze.bfg.interfaces import ISettings @@ -1325,31 +1313,6 @@ class TestBFGViewGrokker(unittest.TestCase): result = grokker.grok('name', obj) self.assertEqual(result, False) -class TestDefaultRootFactory(unittest.TestCase): - def _getTargetClass(self): - from repoze.bfg.configuration import DefaultRootFactory - return DefaultRootFactory - - def _makeOne(self, environ): - return self._getTargetClass()(environ) - - def test_no_matchdict(self): - environ = {} - root = self._makeOne(environ) - self.assertEqual(root.__parent__, None) - self.assertEqual(root.__name__, None) - - def test_matchdict(self): - class DummyRequest: - pass - request = DummyRequest() - request.matchdict = {'a':1, 'b':2} - root = self._makeOne(request) - self.assertEqual(root.a, 1) - self.assertEqual(root.b, 2) - - - class DummyRequest: pass diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 3321af938..f3fe6dd70 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -528,46 +528,26 @@ class TestMakeApp(unittest.TestCase): return make_app(*arg, **kw) def test_it(self): - from repoze.bfg.interfaces import IWSGIApplicationCreatedEvent - from repoze.bfg.tests import fixtureapp - from zope.component import getSiteManager - sm = getSiteManager() - def subscriber(event): - event.app.created = True - manager = DummyRegistryManager() - sm.registerHandler(subscriber, (IWSGIApplicationCreatedEvent,)) - rootfactory = DummyRootFactory(None) settings = {'a':1} - app = self._callFUT(rootfactory, fixtureapp, settings=settings, - Configurator=DummyConfigurator, manager=manager) - self.failUnless(app.created) - self.failUnless(manager.pushed) - self.failUnless(manager.popped) - self.assertEqual(app.registry.root_factory, rootfactory) - self.assertEqual(app.registry.settings, settings) - self.assertEqual(app.registry.package, fixtureapp) - self.assertEqual(app.registry.filename, 'configure.zcml') + package = object() + rootfactory = object() + app = self._callFUT(rootfactory, package, settings=settings, + Configurator=DummyConfigurator) + self.assertEqual(app.root_factory, rootfactory) + self.assertEqual(app.settings, settings) + self.assertEqual(app.package, package) + self.assertEqual(app.filename, 'configure.zcml') def test_it_options_means_settings(self): - from repoze.bfg.interfaces import IWSGIApplicationCreatedEvent - from repoze.bfg.tests import fixtureapp - from zope.component import getSiteManager - sm = getSiteManager() - def subscriber(event): - event.app.created = True - manager = DummyRegistryManager() - sm.registerHandler(subscriber, (IWSGIApplicationCreatedEvent,)) - rootfactory = DummyRootFactory(None) settings = {'a':1} - app = self._callFUT(rootfactory, fixtureapp, options=settings, - Configurator=DummyConfigurator, manager=manager) - self.failUnless(app.created) - self.failUnless(manager.pushed) - self.failUnless(manager.popped) - self.assertEqual(app.registry.root_factory, rootfactory) - self.assertEqual(app.registry.settings, settings) - self.assertEqual(app.registry.package, fixtureapp) - self.assertEqual(app.registry.filename, 'configure.zcml') + package = object() + rootfactory = object() + app = self._callFUT(rootfactory, package, options=settings, + Configurator=DummyConfigurator) + self.assertEqual(app.root_factory, rootfactory) + self.assertEqual(app.settings, settings) + self.assertEqual(app.package, package) + self.assertEqual(app.filename, 'configure.zcml') class DummyContext: pass @@ -640,13 +620,13 @@ class DummyRegistryManager: self.popped = True class DummyConfigurator(object): - def __init__(self, registry): - self.registry = registry - - def default_configuration(self, root_factory=None, package=None, - filename=None, settings=None): - self.registry.root_factory = root_factory - self.registry.package = package - self.registry.filename = filename - self.registry.settings = settings + def make_wsgi_app(self): + return self + + def declarative(self, root_factory=None, package=None, + filename=None, settings=None): + self.root_factory = root_factory + self.package = package + self.filename = filename + self.settings = settings diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py index aceed1076..a15716d4c 100644 --- a/repoze/bfg/tests/test_traversal.py +++ b/repoze/bfg/tests/test_traversal.py @@ -970,6 +970,30 @@ class TraverseTests(unittest.TestCase): self.assertEqual(result['view_name'], '') self.assertEqual(result['context'], model) +class TestDefaultRootFactory(unittest.TestCase): + def _getTargetClass(self): + from repoze.bfg.traversal import DefaultRootFactory + return DefaultRootFactory + + def _makeOne(self, environ): + return self._getTargetClass()(environ) + + def test_no_matchdict(self): + environ = {} + root = self._makeOne(environ) + self.assertEqual(root.__parent__, None) + self.assertEqual(root.__name__, None) + + def test_matchdict(self): + class DummyRequest: + pass + request = DummyRequest() + request.matchdict = {'a':1, 'b':2} + root = self._makeOne(request) + self.assertEqual(root.a, 1) + self.assertEqual(root.b, 2) + + def make_traverser(result): class DummyTraverser(object): def __init__(self, context): -- cgit v1.2.3