From 6d3878066c21a710274b25ed4ce16ddce44ed686 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 19 Nov 2009 12:09:22 +0000 Subject: Add configurator static tests. --- repoze/bfg/configuration.py | 2 +- repoze/bfg/tests/test_configuration.py | 66 +++++++++++++++++++++++++++- repoze/bfg/tests/test_zcml.py | 79 +--------------------------------- 3 files changed, 67 insertions(+), 80 deletions(-) diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py index 6d8904cfc..486f014ab 100644 --- a/repoze/bfg/configuration.py +++ b/repoze/bfg/configuration.py @@ -7,7 +7,6 @@ import inspect from webob import Response import zope.component -from zope.component.event import dispatch from zope.configuration.exceptions import ConfigurationError from zope.configuration import xmlconfig @@ -84,6 +83,7 @@ class Configurator(object): return self.reg def make_wsgi_app(self, manager=manager, getSiteManager=getSiteManager): + # manager and getSiteManager in arglist for testing dep injection only from repoze.bfg.router import Router # avoid circdep app = Router(self.reg) # executing sethook means we're taking over getSiteManager for diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py index ab4a18d33..491e3125e 100644 --- a/repoze/bfg/tests/test_configuration.py +++ b/repoze/bfg/tests/test_configuration.py @@ -59,7 +59,7 @@ class ConfiguratorTests(unittest.TestCase): notifications. This method is useful when testing code that wants to call ``zope.component.event.dispatch`` or ``zope.component.event.objectEventNotify``.""" - if event_iface is None: + if event_iface is None: # pragma: no cover from zope.interface import Interface event_iface = Interface L = [] @@ -68,6 +68,12 @@ class ConfiguratorTests(unittest.TestCase): config.reg.registerHandler(subscriber, (event_iface,)) return L + def test_ctor_no_registry(self): + from repoze.bfg.interfaces import ISettings + from repoze.bfg.configuration import Configurator + config = Configurator() + self.failUnless(config.reg.getUtility(ISettings)) + def test_make_default_registry(self): config = self._makeOne() reg = config.make_default_registry() @@ -1310,6 +1316,56 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(overrides.inserted, [('path', 'opackage', 'oprefix')]) self.assertEqual(overrides.package, package) + def test_static_here_relative(self): + from repoze.bfg.static import PackageURLParser + from zope.interface import implementedBy + from repoze.bfg.static import StaticRootFactory + from repoze.bfg.interfaces import IView + config = self._makeOne() + config.static('static', 'fixtures/static') + request_type = self._getRouteRequestIface(config, 'static') + route = self._assertRoute(config, 'static', 'static*subpath') + self.assertEqual(route.factory.__class__, StaticRootFactory) + iface = implementedBy(StaticRootFactory) + wrapped = config.reg.adapters.lookup( + (iface, request_type), IView, name='') + request = DummyRequest() + self.assertEqual(wrapped(None, request).__class__, PackageURLParser) + + def test_static_package_relative(self): + from repoze.bfg.static import PackageURLParser + from zope.interface import implementedBy + from repoze.bfg.static import StaticRootFactory + from repoze.bfg.interfaces import IView + config = self._makeOne() + config.static('static', 'repoze.bfg.tests:fixtures/static') + request_type = self._getRouteRequestIface(config, 'static') + route = self._assertRoute(config, 'static', 'static*subpath') + self.assertEqual(route.factory.__class__, StaticRootFactory) + iface = implementedBy(StaticRootFactory) + wrapped = config.reg.adapters.lookup( + (iface, request_type), IView, name='') + request = DummyRequest() + self.assertEqual(wrapped(None, request).__class__, PackageURLParser) + + def test_static_absolute(self): + from paste.urlparser import StaticURLParser + import os + from zope.interface import implementedBy + from repoze.bfg.static import StaticRootFactory + from repoze.bfg.interfaces import IView + config = self._makeOne() + here = os.path.dirname(__file__) + static_path = os.path.join(here, 'fixtures', 'static') + config.static('static', static_path) + request_type = self._getRouteRequestIface(config, 'static') + route = self._assertRoute(config, 'static', 'static*subpath') + self.assertEqual(route.factory.__class__, StaticRootFactory) + iface = implementedBy(StaticRootFactory) + wrapped = config.reg.adapters.lookup( + (iface, request_type), IView, name='') + request = DummyRequest() + self.assertEqual(wrapped(None, request).__class__, StaticURLParser) class TestBFGViewGrokker(unittest.TestCase): def setUp(self): @@ -1803,7 +1859,13 @@ class TestRequestOnly(unittest.TestCase): self.assertFalse(self._callFUT(foo)) class DummyRequest: - pass + subpath = () + def __init__(self): + self.environ = {'PATH_INFO':'/static'} + def copy(self): + return self + def get_response(self, app): + return app class DummyRootFactory: def __init__(self, root): diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 3dc55957e..f73fde9a7 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -438,47 +438,7 @@ class TestStaticDirective(unittest.TestCase): from repoze.bfg.zcml import static return static(*arg, **kw) - def test_absolute(self): - from paste.urlparser import StaticURLParser - from zope.interface import implementedBy - from zope.component import getSiteManager - from repoze.bfg.static import StaticRootFactory - from repoze.bfg.interfaces import IView - from repoze.bfg.interfaces import IRouteRequest - from repoze.bfg.interfaces import IRoutesMapper - import os - here = os.path.dirname(__file__) - static_path = os.path.join(here, 'fixtures', 'static') - context = DummyContext() - self._callFUT(context, 'name', static_path) - actions = context.actions - self.assertEqual(len(actions), 2) - - sm = getSiteManager() - - route_action = actions[0] - route_action['callable']() - discriminator = route_action['discriminator'] - self.assertEqual(discriminator, - ('route', 'name', False, None, None, None, None, None)) - mapper = sm.getUtility(IRoutesMapper) - routes = mapper.get_routes() - self.assertEqual(len(routes), 1) - self.assertEqual(routes[0].path, 'name*subpath') - self.assertEqual(routes[0].name, 'name') - - - view_action = actions[1] - discriminator = view_action['discriminator'] - self.assertEqual(discriminator[:3], ('view', StaticRootFactory, '')) - self.assertEqual(discriminator[4], IView) - iface = implementedBy(StaticRootFactory) - request_type = sm.getUtility(IRouteRequest, 'name') - wrapped = sm.adapters.lookup((iface, request_type), IView, name='') - request = DummyRequest() - self.assertEqual(wrapped(None, request).__class__, StaticURLParser) - - def test_package_relative(self): + def test_it(self): from repoze.bfg.static import PackageURLParser from zope.component import getSiteManager from zope.interface import implementedBy @@ -487,7 +447,7 @@ class TestStaticDirective(unittest.TestCase): from repoze.bfg.interfaces import IRouteRequest from repoze.bfg.interfaces import IRoutesMapper context = DummyContext() - self._callFUT(context, 'name', 'repoze.bfg.tests:fixtures/static') + self._callFUT(context, 'name', 'fixtures/static') actions = context.actions self.assertEqual(len(actions), 2) @@ -514,41 +474,6 @@ class TestStaticDirective(unittest.TestCase): request = DummyRequest() self.assertEqual(view(None, request).__class__, PackageURLParser) - def test_here_relative(self): - from repoze.bfg.static import PackageURLParser - from zope.component import getSiteManager - from zope.interface import implementedBy - from repoze.bfg.static import StaticRootFactory - from repoze.bfg.interfaces import IView - from repoze.bfg.interfaces import IRouteRequest - from repoze.bfg.interfaces import IRoutesMapper - import repoze.bfg.tests - context = DummyContext(repoze.bfg.tests) - self._callFUT(context, 'name', 'fixtures/static') - actions = context.actions - self.assertEqual(len(actions), 2) - - sm = getSiteManager() - route_action = actions[0] - route_action['callable']() - discriminator = route_action['discriminator'] - self.assertEqual(discriminator, - ('route', 'name', False, None, None, None, None, None)) - mapper = sm.getUtility(IRoutesMapper) - routes = mapper.get_routes() - self.assertEqual(len(routes), 1) - self.assertEqual(routes[0].path, 'name*subpath') - self.assertEqual(routes[0].name, 'name') - - view_action = actions[1] - discriminator = view_action['discriminator'] - self.assertEqual(discriminator[:3], ('view', StaticRootFactory, '')) - self.assertEqual(discriminator[4], IView) - iface = implementedBy(StaticRootFactory) - request_type = sm.getUtility(IRouteRequest, 'name') - wrapped = sm.adapters.lookup((iface, request_type), IView, name='') - request = DummyRequest() - self.assertEqual(wrapped(None, request).__class__, PackageURLParser) class TestResourceDirective(unittest.TestCase): def setUp(self): -- cgit v1.2.3