summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt2
-rw-r--r--pyramid/tests/test_wsgi.py22
-rw-r--r--pyramid/wsgi.py7
3 files changed, 31 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index b0495617b..2761c29dc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,8 @@ Next release
introspectable but not when passed for registration. This would mean that
add_route_predicate for example can not take a string and turn it into the
actual callable function.
+- p.wsgi.wsgiapp and p.wsgi.wsgiapp2 now raise ValueError when accidentally
+ passed None.
1.5 (2014-04-08)
================
diff --git a/pyramid/tests/test_wsgi.py b/pyramid/tests/test_wsgi.py
index 63499b43b..432fb72ae 100644
--- a/pyramid/tests/test_wsgi.py
+++ b/pyramid/tests/test_wsgi.py
@@ -5,6 +5,17 @@ class WSGIAppTests(unittest.TestCase):
from pyramid.wsgi import wsgiapp
return wsgiapp(app)
+ def test_wsgiapp_none(self):
+ self.assertRaises(ValueError, self._callFUT, None)
+
+ def test_wsgiapp_none_func(self):
+ from pyramid.wsgi import wsgiapp
+
+ def some_func():
+ pass
+
+ self.assertRaises(ValueError, wsgiapp, some_func())
+
def test_decorator(self):
context = DummyContext()
request = DummyRequest()
@@ -25,6 +36,17 @@ class WSGIApp2Tests(unittest.TestCase):
from pyramid.wsgi import wsgiapp2
return wsgiapp2(app)
+ def test_wsgiapp2_none(self):
+ self.assertRaises(ValueError, self._callFUT, None)
+
+ def test_wsgiapp2_none_func(self):
+ from pyramid.wsgi import wsgiapp2
+
+ def some_func():
+ pass
+
+ self.assertRaises(ValueError, wsgiapp2, some_func())
+
def test_decorator_with_subpath_and_view_name(self):
context = DummyContext()
request = DummyRequest()
diff --git a/pyramid/wsgi.py b/pyramid/wsgi.py
index d176e4ce5..1c1bded32 100644
--- a/pyramid/wsgi.py
+++ b/pyramid/wsgi.py
@@ -29,6 +29,10 @@ def wsgiapp(wrapped):
view.
"""
+
+ if wrapped is None:
+ raise ValueError('wrapped can not be None')
+
def decorator(context, request):
return request.get_response(wrapped)
@@ -69,6 +73,9 @@ def wsgiapp2(wrapped):
subpath is used as the ``SCRIPT_NAME``. The new environment is passed to
the downstream WSGI application."""
+ if wrapped is None:
+ raise ValueError('wrapped can not be None')
+
def decorator(context, request):
return call_app_with_subpath_as_path_info(request, wrapped)