From 9d9f0825f4d0da22bc39a511471d16316f421c16 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 14 Jul 2008 21:47:10 +0000 Subject: Warn if views return non-Response objects. --- repoze/bfg/tests/test_wsgiadapter.py | 12 +++++++++++- repoze/bfg/wsgiadapter.py | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/repoze/bfg/tests/test_wsgiadapter.py b/repoze/bfg/tests/test_wsgiadapter.py index 4555cbba5..500c7b138 100644 --- a/repoze/bfg/tests/test_wsgiadapter.py +++ b/repoze/bfg/tests/test_wsgiadapter.py @@ -80,7 +80,17 @@ class NaiveWSGIAdapterTests(unittest.TestCase, PlacelessSetup): self.assertEqual(result, ['Hello world']) self.assertEqual(start_response.headers, ()) self.assertEqual(start_response.status, '200 OK') - + + def test_view_returns_nonresponse(self): + request = DummyRequest() + def view(request): + return None + context = DummyContext() + adapter = self._makeOne(context, request, view) + environ = {} + start_response = DummyStartResponse() + self.assertRaises(ValueError, adapter, environ, start_response) + def test_view_fails_security_policy(self): import zope.component gsm = zope.component.getGlobalSiteManager() diff --git a/repoze/bfg/wsgiadapter.py b/repoze/bfg/wsgiadapter.py index 9b35c6aa2..968092a4e 100644 --- a/repoze/bfg/wsgiadapter.py +++ b/repoze/bfg/wsgiadapter.py @@ -55,6 +55,8 @@ class NaiveWSGIViewAdapter: response = view else: response = mapply(view, positional = (), keyword = kwdict) + if not isResponse(response): + raise ValueError('response was not IResponse: %s' % response) if not catch_response: catch_response = (response.status, response.headerlist) start_response(*catch_response) -- cgit v1.2.3