summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/fixtureapp/another.zcml2
-rw-r--r--repoze/bfg/tests/fixtureapp/configure.zcml5
-rw-r--r--repoze/bfg/tests/fixtureapp/models.py3
-rw-r--r--repoze/bfg/tests/test_router.py147
-rw-r--r--repoze/bfg/tests/test_settings.py11
5 files changed, 114 insertions, 54 deletions
diff --git a/repoze/bfg/tests/fixtureapp/another.zcml b/repoze/bfg/tests/fixtureapp/another.zcml
index c01245656..0ed8cff1b 100644
--- a/repoze/bfg/tests/fixtureapp/another.zcml
+++ b/repoze/bfg/tests/fixtureapp/another.zcml
@@ -1,5 +1,7 @@
<configure xmlns="http://namespaces.repoze.org/bfg">
+ <include package="repoze.bfg.includes" />
+
<view
view=".views.fixture_view"
for="*"
diff --git a/repoze/bfg/tests/fixtureapp/configure.zcml b/repoze/bfg/tests/fixtureapp/configure.zcml
index 29d7a7329..4a36d891a 100644
--- a/repoze/bfg/tests/fixtureapp/configure.zcml
+++ b/repoze/bfg/tests/fixtureapp/configure.zcml
@@ -16,6 +16,11 @@
request_type=".views.IDummy"
/>
+ <utility
+ component=".models.fixture"
+ provides=".models.IFixture"
+ />
+
<include file="another.zcml"/>
</configure>
diff --git a/repoze/bfg/tests/fixtureapp/models.py b/repoze/bfg/tests/fixtureapp/models.py
index a57b06308..d80d14bb3 100644
--- a/repoze/bfg/tests/fixtureapp/models.py
+++ b/repoze/bfg/tests/fixtureapp/models.py
@@ -3,3 +3,6 @@ from zope.interface import Interface
class IFixture(Interface):
pass
+def fixture():
+ """ """
+
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py
index b0f75d899..cd88f8971 100644
--- a/repoze/bfg/tests/test_router.py
+++ b/repoze/bfg/tests/test_router.py
@@ -97,7 +97,7 @@ class RouterTests(unittest.TestCase):
return L
def _registerRootFactory(self, val):
- rootfactory = make_rootfactory(val)
+ rootfactory = DummyRootFactory(val)
from repoze.bfg.interfaces import IRootFactory
self.registry.registerUtility(rootfactory, IRootFactory)
return rootfactory
@@ -221,7 +221,7 @@ class RouterTests(unittest.TestCase):
context = DummyContext()
self._registerTraverserFactory(context)
environ = self._makeEnviron()
- view = make_view('abc')
+ view = DummyView('abc')
self._registerView(view, '', None, None)
router = self._makeOne()
start_response = DummyStartResponse()
@@ -251,7 +251,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
self._registerAuthenticationPolicy()
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
from repoze.bfg.security import ACLDenied
denied = ACLDenied('ace', 'acl', 'permission', ['principals'], context)
environ = self._makeEnviron()
@@ -269,7 +269,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', None, None)
rootfactory = self._registerRootFactory(context)
@@ -289,7 +289,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context, _deprecation_warning='abc')
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', None, None)
router = self._makeOne()
@@ -308,7 +308,7 @@ class RouterTests(unittest.TestCase):
rootfactory = self._registerRootFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, 'foo', None, None)
router = self._makeOne()
@@ -334,7 +334,7 @@ class RouterTests(unittest.TestCase):
rootfactory = self._registerRootFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
router = self._makeOne()
@@ -360,7 +360,7 @@ class RouterTests(unittest.TestCase):
directlyProvides(context, INotContext)
self._registerTraverserFactory(context, subpath=[''])
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
router = self._makeOne()
@@ -379,7 +379,7 @@ class RouterTests(unittest.TestCase):
directlyProvides(context, IContext)
self._registerTraverserFactory(context, subpath=[''])
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
router = self._makeOne()
@@ -398,7 +398,7 @@ class RouterTests(unittest.TestCase):
directlyProvides(context, IContext)
self._registerTraverserFactory(context, subpath=[''])
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
router = self._makeOne()
@@ -421,7 +421,7 @@ class RouterTests(unittest.TestCase):
directlyProvides(context, IContext)
self._registerTraverserFactory(context, subpath=[''])
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
router = self._makeOne()
@@ -444,7 +444,7 @@ class RouterTests(unittest.TestCase):
directlyProvides(context, IContext)
self._registerTraverserFactory(context, subpath=[''])
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
router = self._makeOne()
@@ -465,7 +465,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context, subpath=[''])
self._registerAuthenticationPolicy()
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
checker = self._registerViewPermission('', True)
@@ -486,7 +486,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context, subpath=[''])
self._registerAuthenticationPolicy()
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
from repoze.bfg.security import ACLDenied
denied = ACLDenied('ace', 'acl', 'permission', ['principals'], context)
environ = self._makeEnviron()
@@ -511,7 +511,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context, subpath=[''])
self._registerAuthenticationPolicy()
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
from repoze.bfg.security import ACLDenied
denied = ACLDenied('ace', 'acl', 'permission', ['principals'], context)
environ = self._makeEnviron()
@@ -537,7 +537,7 @@ class RouterTests(unittest.TestCase):
self._registerAuthenticationPolicy()
self._registerTraverserFactory(context, subpath=[''])
response = DummyResponse()
- view = make_view(response)
+ view = DummyView(response)
from repoze.bfg.security import ACLDenied
environ = self._makeEnviron()
self._registerView(view, '', IContext, IRequest)
@@ -571,7 +571,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', None, None)
from repoze.bfg.interfaces import INewRequest
@@ -591,7 +591,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron()
self._registerView(view, '', None, None)
router = self._makeOne()
@@ -610,7 +610,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron(REQUEST_METHOD='POST')
self._registerView(view, '', None, None)
router = self._makeOne()
@@ -631,7 +631,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron(REQUEST_METHOD='PUT')
self._registerView(view, '', None, None)
router = self._makeOne()
@@ -650,7 +650,7 @@ class RouterTests(unittest.TestCase):
self._registerTraverserFactory(context)
response = DummyResponse()
response.app_iter = ['Hello world']
- view = make_view(response)
+ view = DummyView(response)
environ = self._makeEnviron(REQUEST_METHOD='UNKNOWN')
self._registerView(view, '', None, None)
router = self._makeOne()
@@ -663,27 +663,49 @@ class RouterTests(unittest.TestCase):
class MakeAppTests(unittest.TestCase):
def setUp(self):
cleanUp()
- import repoze.bfg.router
- self.old_tl_manager = repoze.bfg.router.manager
- self.regmgr = DummyRegistryManager()
- repoze.bfg.router.manager = self.regmgr
def tearDown(self):
cleanUp()
- import repoze.bfg.router
- repoze.bfg.router.threadlocal_manager = self.old_tl_manager
def _callFUT(self, *arg, **kw):
from repoze.bfg.router import make_app
return make_app(*arg, **kw)
- def test_fixtureapp(self):
+ def test_fixtureapp_default_filename_withpackage(self):
+ manager = DummyRegistryManager()
from repoze.bfg.tests import fixtureapp
- rootpolicy = make_rootfactory(None)
- app = self._callFUT(rootpolicy, fixtureapp)
+ rootpolicy = DummyRootFactory(None)
+ app = self._callFUT(rootpolicy, fixtureapp, manager=manager)
self.assertEqual(app.registry.__name__, 'repoze.bfg.tests.fixtureapp')
+ from repoze.bfg.tests.fixtureapp.models import IFixture
+ self.failUnless(app.registry.queryUtility(IFixture)) # only in c.zcml
+ def test_fixtureapp_explicit_filename(self):
+ manager = DummyRegistryManager()
+ from repoze.bfg.tests import fixtureapp
+ rootpolicy = DummyRootFactory(None)
+ app = self._callFUT(rootpolicy, fixtureapp, filename='another.zcml',
+ manager=manager)
+ self.assertEqual(app.registry.__name__, 'repoze.bfg.tests.fixtureapp')
+ from repoze.bfg.tests.fixtureapp.models import IFixture
+ self.failIf(app.registry.queryUtility(IFixture)) # only in c.zcml
+
+ def test_fixtureapp_explicit_filename_in_options(self):
+ import os
+ manager = DummyRegistryManager()
+ rootpolicy = DummyRootFactory(None)
+ from repoze.bfg.tests import fixtureapp
+ zcmlfile = os.path.join(os.path.dirname(fixtureapp.__file__),
+ 'another.zcml')
+ app = self._callFUT(rootpolicy, fixtureapp, filename='configure.zcml',
+ options={'configure_zcml':zcmlfile},
+ manager=manager)
+ self.assertEqual(app.registry.__name__, 'repoze.bfg.tests.fixtureapp')
+ from repoze.bfg.tests.fixtureapp.models import IFixture
+ self.failIf(app.registry.queryUtility(IFixture)) # only in c.zcml
+
def test_event(self):
+ manager = DummyRegistryManager()
def subscriber(event):
event.app.created = True
from repoze.bfg.interfaces import IWSGIApplicationCreatedEvent
@@ -693,15 +715,17 @@ class MakeAppTests(unittest.TestCase):
(IWSGIApplicationCreatedEvent,)
)
from repoze.bfg.tests import fixtureapp
- rootpolicy = make_rootfactory(None)
- app = self._callFUT(rootpolicy, fixtureapp)
+ rootpolicy = DummyRootFactory(None)
+ app = self._callFUT(rootpolicy, fixtureapp, manager=manager)
assert app.created is True
def test_custom_settings(self):
+ manager = DummyRegistryManager()
options= {'mysetting':True}
from repoze.bfg.tests import fixtureapp
- rootpolicy = make_rootfactory(None)
- app = self._callFUT(rootpolicy, fixtureapp, options=options)
+ rootpolicy = DummyRootFactory(None)
+ app = self._callFUT(rootpolicy, fixtureapp, options=options,
+ manager=manager)
from repoze.bfg.interfaces import ISettings
settings = app.registry.getUtility(ISettings)
self.assertEqual(settings.reload_templates, False)
@@ -709,11 +733,13 @@ class MakeAppTests(unittest.TestCase):
self.assertEqual(settings.mysetting, True)
def test_registrations(self):
+ manager = DummyRegistryManager()
options= {'reload_templates':True,
'debug_authorization':True}
from repoze.bfg.tests import fixtureapp
- rootpolicy = make_rootfactory(None)
- app = self._callFUT(rootpolicy, fixtureapp, options=options)
+ rootpolicy = DummyRootFactory(None)
+ app = self._callFUT(rootpolicy, fixtureapp, options=options,
+ manager=manager)
from repoze.bfg.interfaces import ISettings
from repoze.bfg.interfaces import ILogger
from repoze.bfg.interfaces import IRootFactory
@@ -724,15 +750,17 @@ class MakeAppTests(unittest.TestCase):
self.assertEqual(settings.reload_templates, True)
self.assertEqual(settings.debug_authorization, True)
self.assertEqual(rootfactory, rootpolicy)
- self.failUnless(self.regmgr.pushed and self.regmgr.popped)
+ self.failUnless(manager.pushed and manager.popped)
def test_routes_in_config_with_rootpolicy(self):
+ manager = DummyRegistryManager()
options= {'reload_templates':True,
'debug_authorization':True}
from repoze.bfg.urldispatch import RoutesRootFactory
from repoze.bfg.tests import routesapp
- rootpolicy = make_rootfactory(None)
- app = self._callFUT(rootpolicy, routesapp, options=options)
+ rootpolicy = DummyRootFactory(None)
+ app = self._callFUT(rootpolicy, routesapp, options=options,
+ manager=manager)
from repoze.bfg.interfaces import ISettings
from repoze.bfg.interfaces import ILogger
from repoze.bfg.interfaces import IRootFactory
@@ -744,15 +772,17 @@ class MakeAppTests(unittest.TestCase):
self.assertEqual(settings.debug_authorization, True)
self.failUnless(isinstance(rootfactory, RoutesRootFactory))
self.assertEqual(rootfactory.default_root_factory, rootpolicy)
- self.failUnless(self.regmgr.pushed and self.regmgr.popped)
+ self.failUnless(manager.pushed and manager.popped)
def test_routes_in_config_no_rootpolicy(self):
+ manager = DummyRegistryManager()
options= {'reload_templates':True,
'debug_authorization':True}
from repoze.bfg.urldispatch import RoutesRootFactory
from repoze.bfg.router import DefaultRootFactory
from repoze.bfg.tests import routesapp
- app = self._callFUT(None, routesapp, options=options)
+ app = self._callFUT(None, routesapp, options=options,
+ manager=manager)
from repoze.bfg.interfaces import ISettings
from repoze.bfg.interfaces import ILogger
from repoze.bfg.interfaces import IRootFactory
@@ -764,29 +794,33 @@ class MakeAppTests(unittest.TestCase):
self.assertEqual(settings.debug_authorization, True)
self.failUnless(isinstance(rootfactory, RoutesRootFactory))
self.assertEqual(rootfactory.default_root_factory, DefaultRootFactory)
- self.failUnless(self.regmgr.pushed and self.regmgr.popped)
+ self.failUnless(manager.pushed and manager.popped)
def test_no_routes_in_config_no_rootpolicy(self):
+ manager = DummyRegistryManager()
from repoze.bfg.router import DefaultRootFactory
from repoze.bfg.interfaces import IRootFactory
options= {'reload_templates':True,
'debug_authorization':True}
from repoze.bfg.tests import fixtureapp
- app = self._callFUT(None, fixtureapp, options=options)
+ app = self._callFUT(None, fixtureapp, options=options,
+ manager=manager)
rootfactory = app.registry.getUtility(IRootFactory)
self.assertEqual(rootfactory, DefaultRootFactory)
def test_authorization_policy_no_authentication_policy(self):
+ manager = DummyRegistryManager()
from repoze.bfg.interfaces import IAuthorizationPolicy
authzpolicy = DummyContext()
from repoze.bfg.tests import routesapp
logger = DummyLogger()
app = self._callFUT(None, routesapp, authorization_policy=authzpolicy,
- debug_logger=logger)
+ debug_logger=logger, manager=manager)
self.failIf(app.registry.queryUtility(IAuthorizationPolicy))
self.assertEqual(logger.messages, [])
def test_authentication_policy_no_authorization_policy(self):
+ manager = DummyRegistryManager()
from repoze.bfg.interfaces import IAuthorizationPolicy
from repoze.bfg.interfaces import IAuthenticationPolicy
from repoze.bfg.authorization import ACLAuthorizationPolicy
@@ -794,7 +828,7 @@ class MakeAppTests(unittest.TestCase):
from repoze.bfg.tests import routesapp
logger = DummyLogger()
app = self._callFUT(None, routesapp, authentication_policy=authnpolicy,
- debug_logger=logger)
+ debug_logger=logger, manager=manager)
self.assertEqual(app.registry.getUtility(IAuthenticationPolicy),
authnpolicy)
self.assertEqual(
@@ -803,6 +837,7 @@ class MakeAppTests(unittest.TestCase):
self.assertEqual(len(logger.messages), 1) # deprecation warning
def test_authentication_policy_and_authorization_policy(self):
+ manager = DummyRegistryManager()
from repoze.bfg.interfaces import IAuthorizationPolicy
from repoze.bfg.interfaces import IAuthenticationPolicy
authnpolicy = DummyContext()
@@ -811,7 +846,7 @@ class MakeAppTests(unittest.TestCase):
logger = DummyLogger()
app = self._callFUT(None, routesapp, authentication_policy=authnpolicy,
authorization_policy = authzpolicy,
- debug_logger=logger)
+ debug_logger=logger, manager=manager)
self.assertEqual(app.registry.getUtility(IAuthenticationPolicy),
authnpolicy)
self.assertEqual(app.registry.getUtility(IAuthorizationPolicy),
@@ -866,15 +901,19 @@ class DummyRegistryManager:
class DummyContext:
pass
-def make_view(response):
- def view(context, request):
- return response
- return view
+class DummyView:
+ def __init__(self, response):
+ self.response = response
+
+ def __call__(self, context, request):
+ return self.response
+
+class DummyRootFactory:
+ def __init__(self, root):
+ self.root = root
-def make_rootfactory(root):
- def rootpolicy(environ):
- return root
- return rootpolicy
+ def __call__(self, environ):
+ return self.root
class DummyStartResponse:
status = ()
diff --git a/repoze/bfg/tests/test_settings.py b/repoze/bfg/tests/test_settings.py
index 8319a302d..bef8297bf 100644
--- a/repoze/bfg/tests/test_settings.py
+++ b/repoze/bfg/tests/test_settings.py
@@ -148,6 +148,17 @@ class TestGetOptions(unittest.TestCase):
self.assertEqual(result['debug_notfound'], True)
self.assertEqual(result['debug_authorization'], True)
+ def test_configure_zcml(self):
+ result = self._callFUT({})
+ self.assertEqual(result['configure_zcml'], '')
+ result = self._callFUT({'configure_zcml':'abc'})
+ self.assertEqual(result['configure_zcml'], 'abc')
+ result = self._callFUT({}, {'BFG_CONFIGURE_ZCML':'abc'})
+ self.assertEqual(result['configure_zcml'], 'abc')
+ result = self._callFUT({'configure_zcml':'def'},
+ {'BFG_CONFIGURE_ZCML':'abc'})
+ self.assertEqual(result['configure_zcml'], 'abc')
+
def test_originals_kept(self):
result = self._callFUT({'a':'i am so a'})
self.assertEqual(result['a'], 'i am so a')