diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-19 01:17:21 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-19 01:17:21 +0000 |
| commit | 4df5751de28947538da491dc8ebe0dfb27f742d5 (patch) | |
| tree | 491c7029cb50f4baed54ddf7485b4aa0bb02d739 /repoze/bfg/tests/test_router.py | |
| parent | 7bce0d6d925370dd5721100c28693f806b68344b (diff) | |
| download | pyramid-4df5751de28947538da491dc8ebe0dfb27f742d5.tar.gz pyramid-4df5751de28947538da491dc8ebe0dfb27f742d5.tar.bz2 pyramid-4df5751de28947538da491dc8ebe0dfb27f742d5.zip | |
- The concept of "view factories" was removed in favor of always
calling a view, which is a callable that returns a response
directly (as opposed to returning a view). As a result, the
``factory`` attribute in the bfg:view ZCML statement has been
renamed to ``view``. Various interface names were changed also.
- ``render_template`` and ``render_transform`` no longer return a
Response object. Instead, these return strings. The old behavior
can be obtained by using ``render_template_to_response`` and
``render_transform_to_response``.
Diffstat (limited to 'repoze/bfg/tests/test_router.py')
| -rw-r--r-- | repoze/bfg/tests/test_router.py | 96 |
1 files changed, 37 insertions, 59 deletions
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py index 148b72427..4b1e914b7 100644 --- a/repoze/bfg/tests/test_router.py +++ b/repoze/bfg/tests/test_router.py @@ -12,14 +12,14 @@ class RouterTests(unittest.TestCase, PlacelessSetup): def _registerTraverserFactory(self, app, name, *for_): import zope.component gsm = zope.component.getGlobalSiteManager() - from repoze.bfg.interfaces import IPublishTraverserFactory - gsm.registerAdapter(app, for_, IPublishTraverserFactory, name) + from repoze.bfg.interfaces import ITraverserFactory + gsm.registerAdapter(app, for_, ITraverserFactory, name) - def _registerViewFactory(self, app, name, *for_): + def _registerView(self, app, name, *for_): import zope.component gsm = zope.component.getGlobalSiteManager() - from repoze.bfg.interfaces import IViewFactory - gsm.registerAdapter(app, for_, IViewFactory, name) + from repoze.bfg.interfaces import IView + gsm.registerAdapter(app, for_, IView, name) def _registerPermission(self, permission, name, *for_): import zope.component @@ -27,12 +27,6 @@ class RouterTests(unittest.TestCase, PlacelessSetup): from repoze.bfg.interfaces import IViewPermission gsm.registerAdapter(permission, for_, IViewPermission, name) - def _registerWSGIFactory(self, app, name, *for_): - import zope.component - gsm = zope.component.getGlobalSiteManager() - from repoze.bfg.interfaces import IWSGIApplicationFactory - gsm.registerAdapter(app, for_, IWSGIApplicationFactory, name) - def _registerSecurityPolicy(self, secpol): import zope.component gsm = zope.component.getGlobalSiteManager() @@ -77,42 +71,40 @@ class RouterTests(unittest.TestCase, PlacelessSetup): context = DummyContext() traversalfactory = make_traversal_factory(context, '', []) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + response.app_iter = ['Hello world'] + view = make_view(response) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, '', None, None) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, '', None, None) router = self._makeOne(rootpolicy, None) start_response = DummyStartResponse() result = router(environ, start_response) self.assertEqual(result, ['Hello world']) self.assertEqual(start_response.headers, ()) self.assertEqual(start_response.status, '200 OK') - request = environ['request'] - self.assertEqual(environ['request'].subpath, []) - self.assertEqual(environ['view'].context, context) + self.assertEqual(environ['webob.adhoc_attrs']['view_name'], '') + self.assertEqual(environ['webob.adhoc_attrs']['subpath'], []) + self.assertEqual(environ['webob.adhoc_attrs']['context'], context) def test_call_view_registered_nonspecific_nondefault_path_and_subpath(self): rootpolicy = make_rootpolicy(None) context = DummyContext() traversalfactory = make_traversal_factory(context, 'foo', ['bar']) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + response.app_iter = ['Hello world'] + view = make_view(response) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, 'foo', None, None) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, 'foo', None, None) router = self._makeOne(rootpolicy, None) start_response = DummyStartResponse() result = router(environ, start_response) self.assertEqual(result, ['Hello world']) self.assertEqual(start_response.headers, ()) self.assertEqual(start_response.status, '200 OK') - request = environ['request'] - self.assertEqual(environ['request'].subpath, ['bar']) - self.assertEqual(environ['view'].context, context) + self.assertEqual(environ['webob.adhoc_attrs']['view_name'], 'foo') + self.assertEqual(environ['webob.adhoc_attrs']['subpath'], ['bar']) + self.assertEqual(environ['webob.adhoc_attrs']['context'], context) def test_call_view_registered_specific_success(self): rootpolicy = make_rootpolicy(None) @@ -125,21 +117,20 @@ class RouterTests(unittest.TestCase, PlacelessSetup): directlyProvides(context, IContext) traversalfactory = make_traversal_factory(context, '', []) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + response.app_iter = ['Hello world'] + view = make_view(response) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, '', IContext, IRequest) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, '', IContext, IRequest) router = self._makeOne(rootpolicy, None) start_response = DummyStartResponse() result = router(environ, start_response) self.assertEqual(result, ['Hello world']) self.assertEqual(start_response.headers, ()) self.assertEqual(start_response.status, '200 OK') - request = environ['request'] - self.assertEqual(environ['request'].subpath, []) - self.assertEqual(environ['view'].context, context) + self.assertEqual(environ['webob.adhoc_attrs']['view_name'], '') + self.assertEqual(environ['webob.adhoc_attrs']['subpath'], []) + self.assertEqual(environ['webob.adhoc_attrs']['context'], context) def test_call_view_registered_specific_fail(self): rootpolicy = make_rootpolicy(None) @@ -154,18 +145,16 @@ class RouterTests(unittest.TestCase, PlacelessSetup): directlyProvides(context, INotContext) traversalfactory = make_traversal_factory(context, '', ['']) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + view = make_view(response) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, '', IContext, IRequest) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, '', IContext, IRequest) app_context = make_appcontext() router = self._makeOne(rootpolicy, None) start_response = DummyStartResponse() result = router(environ, start_response) - self.failUnless('404' in result[0]) self.assertEqual(start_response.status, '404 Not Found') + self.failUnless('404' in result[0]) def test_call_view_registered_security_policy_permission_none(self): rootpolicy = make_rootpolicy(None) @@ -178,12 +167,10 @@ class RouterTests(unittest.TestCase, PlacelessSetup): directlyProvides(context, IContext) traversalfactory = make_traversal_factory(context, '', ['']) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + view = make_view(response) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, '', IContext, IRequest) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, '', IContext, IRequest) secpol = DummySecurityPolicy() self._registerSecurityPolicy(secpol) app_context = make_appcontext() @@ -203,14 +190,12 @@ class RouterTests(unittest.TestCase, PlacelessSetup): directlyProvides(context, IContext) traversalfactory = make_traversal_factory(context, '', ['']) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + view = make_view(response) secpol = DummySecurityPolicy() permissionfactory = make_permission_factory(True) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, '', IContext, IRequest) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, '', IContext, IRequest) self._registerSecurityPolicy(secpol) self._registerPermission(permissionfactory, '', IContext, IRequest) app_context = make_appcontext() @@ -220,7 +205,7 @@ class RouterTests(unittest.TestCase, PlacelessSetup): self.assertEqual(start_response.status, '200 OK') self.assertEqual(permissionfactory.checked_with, secpol) - def test_call_view_registered_security_policy_permission_failss(self): + def test_call_view_registered_security_policy_permission_fails(self): rootpolicy = make_rootpolicy(None) from zope.interface import Interface from zope.interface import directlyProvides @@ -231,14 +216,12 @@ class RouterTests(unittest.TestCase, PlacelessSetup): directlyProvides(context, IContext) traversalfactory = make_traversal_factory(context, '', ['']) response = DummyResponse() - viewfactory = make_view_factory(response) - wsgifactory = make_wsgi_factory('200 OK', (), ['Hello world']) + view = make_view(response) secpol = DummySecurityPolicy() permissionfactory = make_permission_factory(False) environ = self._makeEnviron() self._registerTraverserFactory(traversalfactory, '', None, None) - self._registerViewFactory(viewfactory, '', IContext, IRequest) - self._registerWSGIFactory(wsgifactory, '', None, None, None) + self._registerView(view, '', IContext, IRequest) self._registerSecurityPolicy(secpol) self._registerPermission(permissionfactory, '', IContext, IRequest) app_context = make_appcontext() @@ -287,15 +270,10 @@ def make_wsgi_factory(status, headers, app_iter): return DummyWSGIApplicationFactory -def make_view_factory(response): - class DummyViewFactory: - def __init__(self, context, request): - self.context = context - self.request = request - - def __call__(self): - return response - return DummyViewFactory +def make_view(response): + def view(context, request): + return response + return view def make_traversal_factory(context, name, subpath): class DummyTraversalFactory: |
