summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-11-19 12:09:22 +0000
committerChris McDonough <chrism@agendaless.com>2009-11-19 12:09:22 +0000
commit6d3878066c21a710274b25ed4ce16ddce44ed686 (patch)
tree0cc2772c44a213fbda98c9565139c86224e180c2
parent9966517cfaada7b7dc885f69feffc8f955beb801 (diff)
downloadpyramid-6d3878066c21a710274b25ed4ce16ddce44ed686.tar.gz
pyramid-6d3878066c21a710274b25ed4ce16ddce44ed686.tar.bz2
pyramid-6d3878066c21a710274b25ed4ce16ddce44ed686.zip
Add configurator static tests.
-rw-r--r--repoze/bfg/configuration.py2
-rw-r--r--repoze/bfg/tests/test_configuration.py66
-rw-r--r--repoze/bfg/tests/test_zcml.py79
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):