summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_zcml.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_zcml.py')
-rw-r--r--repoze/bfg/tests/test_zcml.py2093
1 files changed, 46 insertions, 2047 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 7caf2a596..3dc55957e 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -17,445 +17,6 @@ class TestViewDirective(unittest.TestCase):
from repoze.bfg.zcml import view
return view(*arg, **kw)
- def test_no_view(self):
- from zope.configuration.exceptions import ConfigurationError
- context = DummyContext()
- self.assertRaises(ConfigurationError, self._callFUT, context,
- 'repoze.view', None)
-
- def test_view_as_function(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
-
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.failUnless(wrapper)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_view_as_function_requestonly(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
-
- context = DummyContext()
-
- def view(request):
- return 'OK'
- class IFoo(Interface):
- pass
-
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.failIfEqual(wrapper, view)
- self.assertEqual(wrapper.__module__, view.__module__)
- self.assertEqual(wrapper.__name__, view.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- result = wrapper(None, None)
- self.assertEqual(result, 'OK')
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_view_as_instance(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
-
- context = DummyContext()
- class AView:
- def __call__(self, context, request):
- """ """
- view = AView()
- class IFoo(Interface):
- pass
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.failUnless(wrapper)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_view_as_instance_requestonly(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
-
- context = DummyContext()
- class AView:
- def __call__(self, request):
- return 'OK'
- view = AView()
- class IFoo(Interface):
- pass
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.failIfEqual(wrapper, view)
- self.assertEqual(wrapper.__module__, view.__module__)
- self.failUnless('instance' in wrapper.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- result = wrapper(None, None)
- self.assertEqual(result, 'OK')
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_view_as_oldstyle_class(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
- context = DummyContext()
- class IFoo(Interface):
- pass
- class view:
- def __init__(self, context, request):
- self.context = context
- self.request = request
-
- def __call__(self):
- return self
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
-
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.assertEqual(wrapper.__module__, view.__module__)
- self.assertEqual(wrapper.__name__, view.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- result = wrapper(None, None)
- self.assertEqual(result.context, None)
- self.assertEqual(result.request, None)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_view_as_oldstyle_class_requestonly(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
-
- context = DummyContext()
- class IFoo(Interface):
- pass
- class view:
- def __init__(self, request):
- self.request = request
-
- def __call__(self):
- return self
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.assertEqual(wrapper.__module__, view.__module__)
- self.assertEqual(wrapper.__name__, view.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- result = wrapper(None, None)
- self.assertEqual(result.request, None)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
-
- def test_view_as_newstyle_class(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
-
- context = DummyContext()
- class IFoo(Interface):
- pass
- class view(object):
- def __init__(self, context, request):
- self.context = context
- self.request = request
-
- def __call__(self):
- return self
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.assertEqual(wrapper.__module__, view.__module__)
- self.assertEqual(wrapper.__name__, view.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- result = wrapper(None, None)
- self.assertEqual(result.context, None)
- self.assertEqual(result.request, None)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_view_as_newstyle_class_requestonly(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
-
- context = DummyContext()
- class IFoo(Interface):
- pass
- class view(object):
- def __init__(self, request):
- self.request = request
-
- def __call__(self):
- return self
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.assertEqual(wrapper.__module__, view.__module__)
- self.assertEqual(wrapper.__name__, view.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- result = wrapper(None, None)
- self.assertEqual(result.request, None)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_with_reltemplate(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRendererFactory
- import repoze.bfg.tests
-
- context = DummyContext(repoze.bfg.tests)
- class IFoo(Interface):
- pass
- class view(object):
- def __init__(self, context, request):
- self.request = request
- self.context = context
-
- def __call__(self):
- return {'a':'1'}
-
- class Renderer:
- def __call__(self, path):
- self.path = path
- return lambda *arg: 'Hello!'
-
- renderer = Renderer()
- sm = getSiteManager()
- sm.registerUtility(renderer, IRendererFactory, name='.txt')
-
- fixture = 'fixtures/minimal.txt'
- self._callFUT(context, 'repoze.view', IFoo, view=view, renderer=fixture)
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.assertEqual(wrapper.__module__, view.__module__)
- self.assertEqual(wrapper.__name__, view.__name__)
- self.assertEqual(wrapper.__doc__, view.__doc__)
- request = DummyRequest()
- result = wrapper(None, request)
- self.assertEqual(result.body, 'Hello!')
- self.assertEqual(renderer.path, 'repoze.bfg.tests:fixtures/minimal.txt')
-
- def test_with_template_no_view_callable(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRendererFactory
-
- import repoze.bfg.tests
-
- context = DummyContext(repoze.bfg.tests)
- class IFoo(Interface):
- pass
- sm = getSiteManager()
- def renderer_factory(path):
- return lambda *arg: 'Hello!'
- sm.registerUtility(renderer_factory, IRendererFactory, name='.txt')
-
- self._callFUT(context, 'repoze.view', IFoo, renderer='foo.txt')
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.environ = {}
- result = wrapper(None, request)
- self.assertEqual(result.body, 'Hello!')
-
- def test_request_type_asinterface(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IViewPermission
- class IRequest(Interface):
- pass
- class IFoo(Interface):
- pass
- context = DummyContext(IRequest)
- view = lambda *arg: None
- self._callFUT(context, 'repoze.view', IFoo, view=view,
- request_type=IDummy)
- actions = context.actions
-
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', IDummy, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IDummy), IView, name='')
- self.failUnless(wrapper)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, None)
-
- def test_request_type_as_noninterface(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from zope.interface import implementedBy
- from repoze.bfg.interfaces import IView
- class IFoo(Interface):
- pass
- class Dummy:
- pass
- context = DummyContext(Dummy)
- view = lambda *arg: None
- self._callFUT(context, 'repoze.view', IFoo, view=view,
- request_type=Dummy)
- actions = context.actions
-
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- discrim = ('view', IFoo, '', Dummy, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- sm = getSiteManager()
- iface = implementedBy(Dummy)
- wrapper = sm.adapters.lookup((IFoo, iface), IView, name='')
- self.failUnless(wrapper)
- self.failIf(hasattr(wrapper, '__call_permissive__'))
-
def test_request_type_ashttpmethod(self):
from zope.interface import Interface
from zope.component import getSiteManager
@@ -472,7 +33,7 @@ class TestViewDirective(unittest.TestCase):
self.assertEqual(len(actions), 1)
action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, 'GET', None,
+ discrim = ('view', IFoo, '', None, IView, None, None, 'GET', None,
None, False, None, None, None)
self.assertEqual(action['discriminator'], discrim)
register = action['callable']
@@ -485,7 +46,6 @@ class TestViewDirective(unittest.TestCase):
request.method = 'POST'
self.assertEqual(wrapper.__predicated__(None, request), False)
-
def test_request_type_asinterfacestring(self):
from zope.component import getSiteManager
from zope.interface import Interface
@@ -515,726 +75,6 @@ class TestViewDirective(unittest.TestCase):
perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
self.assertEqual(perm, None)
- def test_with_route_name(self):
- from zope.interface import Interface
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: '123'
- self._callFUT(context, 'repoze.view', IFoo, view=view, route_name='foo')
- actions = context.actions
-
- self.assertEqual(len(actions), 1)
-
- action = actions[0]
- register = action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'foo')
- discrim = ('view', IFoo, '', request_type, IView, None, None, None,
- 'foo', None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- the_view = sm.adapters.lookup((IFoo, request_type), IView, name='')
- request = DummyRequest({})
- self.assertEqual(the_view(None, request), '123')
-
- def test_with_request_method_true(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, request_method='POST')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, 'POST', None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.method = 'POST'
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_request_method_false(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, request_method='POST')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, 'POST', None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.method = 'GET'
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_request_param_noval_true(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, request_param='abc')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, 'abc', None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.params = {'abc':''}
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_request_param_noval_false(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, request_param='abc')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, 'abc', None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.params = {}
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_request_param_val_true(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, request_param='abc=123')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, 'abc=123', None,
- None, None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.params = {'abc':'123'}
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_request_param_val_false(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, request_param='abc=123')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, 'abc=123', None,
- None, None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.params = {'abc':'456'}
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_xhr_true(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, xhr=True)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, True, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.is_xhr = True
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_xhr_false(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, xhr=True)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, True, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.is_xhr = False
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_header_badregex(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from zope.configuration.exceptions import ConfigurationError
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, header='Host:a\\')
- self.assertRaises(ConfigurationError, context.actions[-1]['callable'])
-
- def test_with_header_noval_match(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, header='Host')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, 'Host', None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.headers = {'Host':'whatever'}
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_header_noval_nomatch(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, header='Host')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, 'Host', None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.headers = {'NotHost':'whatever'}
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_header_val_match(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, header=r'Host:\d')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, r'Host:\d', None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.headers = {'Host':'1'}
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_header_val_nomatch(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, header=r'Host:\d')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, r'Host:\d', None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.headers = {'Host':'abc'}
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_accept_match(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, accept='text/xml')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, 'text/xml', None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.accept = ['text/xml']
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_accept_nomatch(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, accept='text/xml')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, 'text/xml', None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- request.accept = ['text/html']
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_with_containment_true(self):
- from zope.component import getSiteManager
- from zope.interface import directlyProvides
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- sm.registerAdapter(view, (IFoo, IRequest), IView, name='')
- self._callFUT(context, None, IFoo, view=view, containment=IFoo)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, IFoo, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- context = Dummy()
- directlyProvides(context, IFoo)
- self.assertEqual(wrapper(context, request), '123')
-
- def test_with_containment_false(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, containment=IFoo)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, IFoo, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest()
- context = Dummy()
- self.assertRaises(NotFound, wrapper, context, request)
-
- def test_with_path_info_badregex(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from zope.configuration.exceptions import ConfigurationError
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view, path_info='\\')
- self.assertRaises(ConfigurationError, context.actions[-1]['callable'])
-
- def test_with_path_info_match(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request):
- return '123'
- self._callFUT(context, None, IFoo, view=view, path_info='/foo')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, '/foo')
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest({'PATH_INFO': '/foo'})
- self.assertEqual(wrapper(None, request), '123')
-
- def test_with_path_info_nomatch(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.exceptions import NotFound
- class IFoo(Interface):
- pass
- context = DummyContext()
- view = lambda *arg: None
- sm = getSiteManager()
- def view(context, request): pass
- self._callFUT(context, None, IFoo, view=view, path_info='/boo')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, '/boo')
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- request = DummyRequest({'PATH_INFO': '/foo'})
- self.assertRaises(NotFound, wrapper, None, request)
-
- def test_multiview_replaces_traditional_view(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IMultiView
- from repoze.bfg.interfaces import IViewPermission
- context = DummyContext()
- class IFoo(Interface):
- pass
- sm = getSiteManager()
- def view(context, request):
- return '123'
- sm.registerAdapter(view, (IFoo, IRequest), IView, name='')
- self._callFUT(context, 'repoze.view', IFoo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- self.failUnless(IMultiView.providedBy(wrapper))
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, wrapper.__permitted__)
- self.assertEqual(wrapper(None, None), '123')
-
- def test_multiview_call_ordering(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from zope.interface import directlyProvides
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- context = DummyContext()
- class IFoo(Interface):
- pass
- def view1(context, request): return 'view1'
- def view2(context, request): return 'view2'
- def view3(context, request): return 'view3'
- def view4(context, request): return 'view4'
- def view5(context, request): return 'view5'
- def view6(context, request): return 'view6'
- def view7(context, request): return 'view7'
- def view8(context, request): return 'view8'
- self._callFUT(context, 'repoze.view', IFoo, view=view1)
- self._callFUT(context, 'repoze.view', IFoo, view=view2,
- request_method='POST')
- self._callFUT(context, 'repoze.view', IFoo, view=view3,
- request_param='param')
- self._callFUT(context, 'repoze.view', IFoo, view=view4,
- containment=IFoo)
- self._callFUT(context, 'repoze.view', IFoo, view=view5,
- request_method='POST', request_param='param')
- self._callFUT(context, 'repoze.view', IFoo, view=view6,
- request_method='POST', containment=IFoo)
- self._callFUT(context, 'repoze.view', IFoo, view=view7,
- request_param='param', containment=IFoo)
- self._callFUT(context, 'repoze.view', IFoo, view=view8,
- request_type='POST', request_param='param',
- containment=IFoo)
- for action in context.actions:
- register = action['callable']
- register()
-
- sm = getSiteManager()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
-
- ctx = Dummy()
- request = DummyRequest()
- request.method = 'GET'
- request.params = {}
- self.assertEqual(wrapper(ctx, request), 'view1')
-
- ctx = Dummy()
- request = DummyRequest()
- request.params = {}
- request.method = 'POST'
- self.assertEqual(wrapper(ctx, request), 'view2')
-
- ctx = Dummy()
- request = DummyRequest()
- request.params = {'param':'1'}
- request.method = 'GET'
- self.assertEqual(wrapper(ctx, request), 'view3')
-
- ctx = Dummy()
- directlyProvides(ctx, IFoo)
- request = DummyRequest()
- request.method = 'GET'
- request.params = {}
- self.assertEqual(wrapper(ctx, request), 'view4')
-
- ctx = Dummy()
- request = DummyRequest()
- request.method = 'POST'
- request.params = {'param':'1'}
- self.assertEqual(wrapper(ctx, request), 'view5')
-
- ctx = Dummy()
- directlyProvides(ctx, IFoo)
- request = DummyRequest()
- request.params = {}
- request.method = 'POST'
- self.assertEqual(wrapper(ctx, request), 'view6')
-
- ctx = Dummy()
- directlyProvides(ctx, IFoo)
- request = DummyRequest()
- request.method = 'GET'
- request.params = {'param':'1'}
- self.assertEqual(wrapper(ctx, request), 'view7')
-
- ctx = Dummy()
- directlyProvides(ctx, IFoo)
- request = DummyRequest()
- request.method = 'POST'
- request.params = {'param':'1'}
- self.assertEqual(wrapper(ctx, request), 'view8')
-
- def test_multiview_replaces_multiview(self):
- from zope.component import getSiteManager
- from zope.interface import Interface
- from zope.interface import implements
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IMultiView
- from repoze.bfg.interfaces import IViewPermission
- context = DummyContext()
- class IFoo(Interface):
- pass
- view = lambda *arg: None
- sm = getSiteManager()
- class DummyMultiView:
- implements(IMultiView)
- def __init__(self):
- self.views = []
- self.name = 'name'
- def add(self, view, score):
- self.views.append(view)
- def __call__(self, context, request):
- return '123'
- def __permitted__(self, context, request):
- """ """
- view = DummyMultiView()
- sm.registerAdapter(view, (IFoo, IRequest), IMultiView, name='')
- def view2(context, request):
- """ """
- self._callFUT(context, None, IFoo, view=view2)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', IFoo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- wrapper = sm.adapters.lookup((IFoo, IRequest), IView, name='')
- perm = sm.adapters.lookup((IFoo, IRequest), IViewPermission, name='')
- self.assertEqual(perm, wrapper.__permitted__)
- self.failUnless(IMultiView.providedBy(wrapper))
- self.assertEqual(wrapper(None, None), '123')
- self.assertEqual(wrapper.views, [view2])
-
- def test_for_as_class(self):
- from zope.component import getSiteManager
- from zope.interface import implementedBy
- from repoze.bfg.interfaces import IRequest
- from repoze.bfg.interfaces import IView
- context = DummyContext()
- class Foo:
- pass
- sm = getSiteManager()
- def view(context, request):
- """ """
- self._callFUT(context, 'repoze.view', Foo, view=view)
- actions = context.actions
- self.assertEqual(len(actions), 1)
- action = actions[0]
- discrim = ('view', Foo, '', IRequest, IView, None, None, None, None,
- None, False, None, None, None)
- self.assertEqual(action['discriminator'], discrim)
- register = action['callable']
- register()
- foo = implementedBy(Foo)
- wrapper = sm.adapters.lookup((foo, IRequest), IView, name='')
- self.assertEqual(wrapper, view)
-
class TestNotFoundDirective(unittest.TestCase):
def setUp(self):
testing.setUp()
@@ -1557,871 +397,36 @@ class TestRouteDirective(unittest.TestCase):
self.assertEqual(len(routes[0].predicates), num_predicates)
return route
- def test_defaults(self):
- context = DummyContext()
- self._callFUT(context, 'name', 'path')
- actions = context.actions
- self.assertEqual(len(actions), 1)
- route_action = actions[0]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(
- route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
def test_with_view(self):
+ from zope.component import getSiteManager
from zope.interface import Interface
from repoze.bfg.interfaces import IView
from repoze.bfg.interfaces import IRouteRequest
- from zope.component import getSiteManager
-
context = DummyContext()
- def view(context, request):
- return '123'
+ view = lambda *arg: 'OK'
self._callFUT(context, 'name', 'path', view=view)
actions = context.actions
self.assertEqual(len(actions), 2)
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- register = view_action['callable']
- register()
- wrapped = sm.adapters.lookup((Interface, request_type), IView, name='')
- request = DummyRequest()
- self.assertEqual(wrapped(None, request), '123')
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(
- route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
-
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_and_view_for(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- return '123'
- self._callFUT(context, 'name', 'path', view=view, view_for=IDummy)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', IDummy, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- request = DummyRequest()
- self.assertEqual(wrapped(None, request), '123')
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(
- route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_and_view_for_alias(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- return '123'
- self._callFUT(context, 'name', 'path', view=view, for_=IDummy)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', IDummy, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- request = DummyRequest()
- self.assertEqual(wrapped(None, request), '123')
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None,None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_without_view(self):
- from repoze.bfg.interfaces import IRoutesMapper
- from zope.component import getSiteManager
- context = DummyContext()
- self._callFUT(context, 'name', 'path')
- actions = context.actions
- self.assertEqual(len(actions), 1)
-
route_action = actions[0]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- sm = getSiteManager()
- mapper = sm.getUtility(IRoutesMapper)
- routes = mapper.get_routes()
- self.assertEqual(len(routes), 1)
- self.assertEqual(routes[0].name, 'name')
- self.assertEqual(routes[0].path, 'path')
- self.failIf(routes[0].predicates)
-
- def test_with_view_request_type(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- view_request_type="GET")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, 'GET',
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None,None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_request_type_alias(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- request_type="GET")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, 'GET',
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
+ route_action['callable']()
route_discriminator = route_action['discriminator']
- route_args = route_action['args']
self.assertEqual(route_discriminator,
('route', 'name', False, None, None, None, None,None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_request_method(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- view_request_method="GET")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, 'GET',
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_containment(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, view_containment=True)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, True, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None,None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_header(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, view_header='Host')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, 'Host', None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None,None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_path_info(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, view_path_info='/foo')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, '/foo')
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_xhr(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, view_xhr=True)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, True, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_accept(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- view_accept='text/xml')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, 'text/xml', None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(
- route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_renderer(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
- from repoze.bfg.interfaces import IRendererFactory
-
- sm = getSiteManager()
- def renderer(name):
- return lambda *x: 'foo'
- sm.registerUtility(renderer, IRendererFactory, name='dummy')
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- view_renderer="dummy")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
self._assertRoute('name', 'path')
- def test_with_view_renderer_alias(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
- from repoze.bfg.interfaces import IRendererFactory
-
+ view_action = actions[1]
sm = getSiteManager()
- def renderer(name):
- return lambda *x: 'foo'
- sm.registerUtility(renderer, IRendererFactory, name='dummy')
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- renderer="dummy")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
request_type = sm.getUtility(IRouteRequest, 'name')
view_discriminator = view_action['discriminator']
discrim = ('view', None, '', request_type, IView, None, None, None,
'name', None, False, None, None, None)
self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
-
- def test_with_view_permission(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- sm = getSiteManager()
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- view_permission="edit")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_permission_alias(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- sm = getSiteManager()
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- permission="edit")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_for(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- sm = getSiteManager()
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- view_for=IDummy)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', IDummy, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_view_for_alias(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- sm = getSiteManager()
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view,
- for_=IDummy)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', IDummy, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None, None))
- route_callable()
- self._assertRoute('name', 'path')
-
- def test_with_request_type_GET(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, request_type="GET")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, 'GET',
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
+ wrapped = sm.adapters.lookup((Interface, request_type), IView, name='')
self.failUnless(wrapped)
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None, None, None,None))
- route_callable()
- self._assertRoute('name', 'path')
-
# route predicates
- def test_with_xhr(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, xhr=True)
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', True, None, None, None, None, None))
- route_callable()
- route = self._assertRoute('name', 'path', 1)
- request = DummyRequest()
- request.is_xhr = True
- self.assertEqual(route.predicates[0](None, request), True)
-
- def test_with_request_method(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, request_method="GET")
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
-
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, 'GET',None, None, None, None))
- route_callable()
- route = self._assertRoute('name', 'path', 1)
- request = DummyRequest()
- request.method = 'GET'
- self.assertEqual(route.predicates[0](None, request), True)
-
- def test_with_path_info(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, path_info='/foo')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, '/foo',None,None, None))
- route_callable()
- route = self._assertRoute('name', 'path', 1)
- request = DummyRequest()
- request.path_info = '/foo'
- self.assertEqual(route.predicates[0](None, request), True)
-
- def test_with_request_param(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, request_param='abc')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- route_args = route_action['args']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None,'abc', None, None))
- route_callable()
- route = self._assertRoute('name', 'path', 1)
- request = DummyRequest()
- request.params = {'abc':'123'}
- self.assertEqual(route.predicates[0](None, request), True)
-
- def test_with_header(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, header='Host')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(route_discriminator,
- ('route', 'name', False, None, None,None,'Host', None))
- route_callable()
- route = self._assertRoute('name', 'path', 1)
- request = DummyRequest()
- request.headers = {'Host':'example.com'}
- self.assertEqual(route.predicates[0](None, request), True)
-
- def test_with_accept(self):
- from zope.component import getSiteManager
- from repoze.bfg.interfaces import IView
- from repoze.bfg.interfaces import IRouteRequest
-
- context = DummyContext()
- def view(context, request):
- """ """
- self._callFUT(context, 'name', 'path', view=view, accept='text/xml')
- actions = context.actions
- self.assertEqual(len(actions), 2)
-
- view_action = actions[0]
- register = view_action['callable']
- register()
- sm = getSiteManager()
- request_type = sm.getUtility(IRouteRequest, 'name')
-
- view_discriminator = view_action['discriminator']
- discrim = ('view', None, '', request_type, IView, None, None, None,
- 'name', None, False, None, None, None)
- self.assertEqual(view_discriminator, discrim)
- wrapped = sm.adapters.lookup((IDummy, request_type), IView, name='')
- self.failUnless(wrapped)
-
- route_action = actions[1]
- route_callable = route_action['callable']
- route_discriminator = route_action['discriminator']
- self.assertEqual(
- route_discriminator,
- ('route', 'name', False, None, None, None, None, 'text/xml'))
- route_callable()
- route = self._assertRoute('name', 'path', 1)
- request = DummyRequest()
- request.accept = ['text/xml']
- self.assertEqual(route.predicates[0](None, request), True)
-
class TestStaticDirective(unittest.TestCase):
def setUp(self):
testing.setUp()
@@ -2449,32 +454,30 @@ class TestStaticDirective(unittest.TestCase):
actions = context.actions
self.assertEqual(len(actions), 2)
- action = actions[0]
- discriminator = action['discriminator']
- self.assertEqual(discriminator[:3], ('view', StaticRootFactory, ''))
- self.assertEqual(discriminator[4], IView)
sm = getSiteManager()
- register = action['callable']
- register()
- sm = getSiteManager()
- 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)
- action = actions[1]
- callable = action['callable']
- discriminator = action['discriminator']
+ route_action = actions[0]
+ route_action['callable']()
+ discriminator = route_action['discriminator']
self.assertEqual(discriminator,
('route', 'name', False, None, None, None, None, None))
- action['callable']()
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):
from repoze.bfg.static import PackageURLParser
from zope.component import getSiteManager
@@ -2488,30 +491,29 @@ class TestStaticDirective(unittest.TestCase):
actions = context.actions
self.assertEqual(len(actions), 2)
- action = actions[0]
- discriminator = action['discriminator']
- self.assertEqual(discriminator[:3], ('view', StaticRootFactory, ''))
- self.assertEqual(discriminator[4], IView)
- register = action['callable']
- register()
sm = getSiteManager()
- iface = implementedBy(StaticRootFactory)
- request_type = sm.getUtility(IRouteRequest, 'name')
- view = sm.adapters.lookup((iface, request_type), IView, name='')
- request = DummyRequest()
- self.assertEqual(view(None, request).__class__, PackageURLParser)
- action = actions[1]
- discriminator = action['discriminator']
+ route_action = actions[0]
+ discriminator = route_action['discriminator']
self.assertEqual(discriminator,
('route', 'name', False, None, None, None, None, None))
- action['callable']()
+ route_action['callable']()
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')
+ view = sm.adapters.lookup((iface, request_type), IView, name='')
+ 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
@@ -2526,31 +528,28 @@ class TestStaticDirective(unittest.TestCase):
actions = context.actions
self.assertEqual(len(actions), 2)
- action = actions[0]
- discriminator = action['discriminator']
- self.assertEqual(discriminator[:3], ('view', StaticRootFactory, ''))
- self.assertEqual(discriminator[4], IView)
- register = action['callable']
- register()
sm = getSiteManager()
- 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)
-
- action = actions[1]
- callable = action['callable']
- discriminator = action['discriminator']
+ route_action = actions[0]
+ route_action['callable']()
+ discriminator = route_action['discriminator']
self.assertEqual(discriminator,
('route', 'name', False, None, None, None, None, None))
- action['callable']()
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):
testing.setUp()