summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-14 21:47:10 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-14 21:47:10 +0000
commit9d9f0825f4d0da22bc39a511471d16316f421c16 (patch)
tree6014cd7573f64866ebb67b848e2180479fb5363b
parent3f6d1f025719f9238c3f869dff408f33b00e4766 (diff)
downloadpyramid-9d9f0825f4d0da22bc39a511471d16316f421c16.tar.gz
pyramid-9d9f0825f4d0da22bc39a511471d16316f421c16.tar.bz2
pyramid-9d9f0825f4d0da22bc39a511471d16316f421c16.zip
Warn if views return non-Response objects.
-rw-r--r--repoze/bfg/tests/test_wsgiadapter.py12
-rw-r--r--repoze/bfg/wsgiadapter.py2
2 files changed, 13 insertions, 1 deletions
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)