diff options
Diffstat (limited to 'repoze/bfg/tests/test_wsgi.py')
| -rw-r--r-- | repoze/bfg/tests/test_wsgi.py | 97 |
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 |
