From 32859f733794556e339ea2779b03894e570e0336 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 7 Jul 2011 01:24:37 -0400 Subject: fix a few tests broken by refactoring --- pyramid/config.py | 34 +++++++++++++++++++--------------- pyramid/tests/restbugapp/views.py | 2 +- pyramid/tests/test_router.py | 21 +++++++++++++-------- 3 files changed, 33 insertions(+), 24 deletions(-) diff --git a/pyramid/config.py b/pyramid/config.py index 493a37f3b..184c0c6e8 100644 --- a/pyramid/config.py +++ b/pyramid/config.py @@ -3122,22 +3122,26 @@ class ViewDeriver(object): def _rendered_view(context, request): renderer = static_renderer - response = wrapped_view(context, request) + result = wrapped_view(context, request) registry = self.kw['registry'] - attrs = getattr(request, '__dict__', {}) - if 'override_renderer' in attrs: - # renderer overridden by newrequest event or other - renderer_name = attrs.pop('override_renderer') - renderer = RendererHelper(name=renderer_name, - package=self.kw.get('package'), - registry = registry) - if '__view__' in attrs: - view_inst = attrs.pop('__view__') - else: - view_inst = getattr(wrapped_view, '__original_view__', - wrapped_view) - response = renderer.render_view(request, response, view_inst, - context) + # this must adapt, it can't do a simple interface check + # (webob responses) + response = registry.queryAdapterOrSelf(result, IResponse) + if response is None: + attrs = getattr(request, '__dict__', {}) + if 'override_renderer' in attrs: + # renderer overridden by newrequest event or other + renderer_name = attrs.pop('override_renderer') + renderer = RendererHelper(name=renderer_name, + package=self.kw.get('package'), + registry = registry) + if '__view__' in attrs: + view_inst = attrs.pop('__view__') + else: + view_inst = getattr(wrapped_view, '__original_view__', + wrapped_view) + response = renderer.render_view(request, result, view_inst, + context) return response return _rendered_view diff --git a/pyramid/tests/restbugapp/views.py b/pyramid/tests/restbugapp/views.py index b94851099..2ace59fa9 100644 --- a/pyramid/tests/restbugapp/views.py +++ b/pyramid/tests/restbugapp/views.py @@ -1,4 +1,4 @@ -from webob import Response +from pyramid.response import Response class BaseRESTView(object): def __init__(self, context, request): diff --git a/pyramid/tests/test_router.py b/pyramid/tests/test_router.py index 5fd2cf01e..af311cfc2 100644 --- a/pyramid/tests/test_router.py +++ b/pyramid/tests/test_router.py @@ -4,9 +4,8 @@ from pyramid import testing class TestRouter(unittest.TestCase): def setUp(self): - testing.setUp() - from pyramid.threadlocal import get_current_registry - self.registry = get_current_registry() + self.config = testing.setUp() + self.registry = self.config.registry def tearDown(self): testing.tearDown() @@ -242,7 +241,8 @@ class TestRouter(unittest.TestCase): self._registerTraverserFactory(context) environ = self._makeEnviron() view = DummyView('abc') - self._registerView(view, '', IViewClassifier, None, None) + self._registerView(self.config.derive_view(view), '', IViewClassifier, + None, None) router = self._makeOne() start_response = DummyStartResponse() self.assertRaises(ValueError, router, environ, start_response) @@ -255,7 +255,8 @@ class TestRouter(unittest.TestCase): self._registerTraverserFactory(context) environ = self._makeEnviron() view = DummyView('abc') - self._registerView(view, '', IViewClassifier, None, None) + self._registerView(self.config.derive_view(view), '', + IViewClassifier, None, None) router = self._makeOne() start_response = DummyStartResponse() def make_response(s): @@ -273,7 +274,8 @@ class TestRouter(unittest.TestCase): response.app_iter = ['Hello world'] view = DummyView(response) environ = self._makeEnviron() - self._registerView(view, '', IViewClassifier, None, None) + self._registerView(self.config.derive_view(view), '', + IViewClassifier, None, None) self._registerRootFactory(context) router = self._makeOne() start_response = DummyStartResponse() @@ -856,9 +858,12 @@ class TestRouter(unittest.TestCase): environ = self._makeEnviron() response = DummyResponse() view = DummyView(response, raise_exception=RuntimeError) - self._registerView(view, '', IViewClassifier, IRequest, None) + + self._registerView(self.config.derive_view(view), '', + IViewClassifier, IRequest, None) exception_view = DummyView(None) - self._registerView(exception_view, '', IExceptionViewClassifier, + self._registerView(self.config.derive_view(exception_view), '', + IExceptionViewClassifier, IRequest, RuntimeError) router = self._makeOne() start_response = DummyStartResponse() -- cgit v1.2.3