summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_wsgi.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_wsgi.py')
-rw-r--r--repoze/bfg/tests/test_wsgi.py97
1 files changed, 97 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_wsgi.py b/repoze/bfg/tests/test_wsgi.py
index 1fd2393b8..b9568eb82 100644
--- a/repoze/bfg/tests/test_wsgi.py
+++ b/repoze/bfg/tests/test_wsgi.py
@@ -12,6 +12,103 @@ class WSGIAppTests(unittest.TestCase):
response = decorator(context, request)
self.assertEqual(response, dummyapp)
+class WSGIApp2Tests(unittest.TestCase):
+ def _callFUT(self, app):
+ from repoze.bfg.wsgi import wsgiapp2
+ return wsgiapp2(app)
+
+ def test_decorator_traversed_is_None(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = None
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+
+ def test_decorator_traversed_not_None_with_subpath_and_view_name(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = ['a', 'b']
+ request.virtual_root_path = ['a']
+ request.subpath = ['subpath']
+ request.view_name = 'view_name'
+ request.environ = {'SCRIPT_NAME':'/foo'}
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+ self.assertEqual(request.environ['PATH_INFO'], '/subpath')
+ self.assertEqual(request.environ['SCRIPT_NAME'], '/foo/b/view_name')
+
+ def test_decorator_traversed_not_None_with_subpath_no_view_name(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = ['a', 'b']
+ request.virtual_root_path = ['a']
+ request.subpath = ['subpath']
+ request.view_name = ''
+ request.environ = {'SCRIPT_NAME':'/foo'}
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+ self.assertEqual(request.environ['PATH_INFO'], '/subpath')
+ self.assertEqual(request.environ['SCRIPT_NAME'], '/foo/b')
+
+ def test_decorator_traversed_not_None_no_subpath_with_view_name(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = ['a', 'b']
+ request.virtual_root_path = ['a']
+ request.subpath = []
+ request.view_name = 'view_name'
+ request.environ = {'SCRIPT_NAME':'/foo'}
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+ self.assertEqual(request.environ['PATH_INFO'], '/')
+ self.assertEqual(request.environ['SCRIPT_NAME'], '/foo/b/view_name')
+
+ def test_decorator_traversed_empty_with_view_name(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = []
+ request.virtual_root_path = []
+ request.subpath = []
+ request.view_name = 'view_name'
+ request.environ = {'SCRIPT_NAME':'/foo'}
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+ self.assertEqual(request.environ['PATH_INFO'], '/')
+ self.assertEqual(request.environ['SCRIPT_NAME'], '/foo/view_name')
+
+ def test_decorator_traversed_empty_no_view_name(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = []
+ request.virtual_root_path = []
+ request.subpath = []
+ request.view_name = ''
+ request.environ = {'SCRIPT_NAME':'/foo'}
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+ self.assertEqual(request.environ['PATH_INFO'], '/')
+ self.assertEqual(request.environ['SCRIPT_NAME'], '/foo')
+
+ def test_decorator_traversed_empty_no_view_name_no_script_name(self):
+ context = DummyContext()
+ request = DummyRequest()
+ request.traversed = []
+ request.virtual_root_path = []
+ request.subpath = []
+ request.view_name = ''
+ request.environ = {'SCRIPT_NAME':''}
+ decorator = self._callFUT(dummyapp)
+ response = decorator(context, request)
+ self.assertEqual(response, dummyapp)
+ self.assertEqual(request.environ['PATH_INFO'], '/')
+ self.assertEqual(request.environ['SCRIPT_NAME'], '')
+
class TestNotFound(unittest.TestCase):
def _getTargetClass(self):
from repoze.bfg.wsgi import NotFound