summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_traversal.py25
-rw-r--r--repoze/bfg/tests/test_urldispatch.py48
2 files changed, 48 insertions, 25 deletions
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index a36cbb1dc..36429222e 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -223,31 +223,6 @@ class ModelGraphTraverserTests(unittest.TestCase):
self.assertEqual(result['virtual_root_path'], [])
self.assertEqual(result['matchdict'], {'subpath':'/a/b/c'})
- def test_withroute_with_path_info(self):
- model = DummyContext()
- traverser = self._makeOne(model)
- environ = {'bfg.routes.matchdict': {'path_info':'foo/bar'},
- 'PATH_INFO':'/a/b/foo/bar', 'SCRIPT_NAME':''}
- result = traverser(environ)
- self.assertEqual(result['context'], model)
- self.assertEqual(result['view_name'], '')
- self.assertEqual(result['subpath'], [])
- self.assertEqual(result['traversed'], [])
- self.assertEqual(result['virtual_root'], model)
- self.assertEqual(result['virtual_root_path'], [])
- self.assertEqual(environ['PATH_INFO'], '/foo/bar')
- self.assertEqual(environ['SCRIPT_NAME'], '/a/b')
- self.assertEqual(result['matchdict'], {'path_info':'foo/bar'})
-
- def test_withroute_with_path_info_PATH_INFO_w_extra_slash(self):
- model = DummyContext()
- traverser = self._makeOne(model)
- environ = {'bfg.routes.matchdict':{'path_info':'foo/bar'},
- 'PATH_INFO':'/a/b//foo/bar', 'SCRIPT_NAME':''}
- traverser(environ)
- self.assertEqual(environ['PATH_INFO'], '/foo/bar')
- self.assertEqual(environ['SCRIPT_NAME'], '/a/b')
-
def test_withroute_and_traverse(self):
model = DummyContext()
traverser = self._makeOne(model)
diff --git a/repoze/bfg/tests/test_urldispatch.py b/repoze/bfg/tests/test_urldispatch.py
index 68fda032d..eb3be4323 100644
--- a/repoze/bfg/tests/test_urldispatch.py
+++ b/repoze/bfg/tests/test_urldispatch.py
@@ -70,6 +70,54 @@ class RoutesRootFactoryTests(unittest.TestCase):
self.assertEqual(environ['bfg.routes.matchdict'], {})
self.assertEqual(environ['wsgiorg.routing_args'], ((), {}))
+ def test_matches_with_path_info_no_scriptname(self):
+ root_factory = make_get_root(123)
+ mapper = self._makeOne(root_factory)
+ mapper.connect('root', '/a/b/*path_info')
+ environ = self._getEnviron(PATH_INFO='/a/b/c/d')
+ result = mapper(environ)
+ self.assertEqual(result, 123)
+ self.assertEqual(environ['bfg.routes.route'].name, 'root')
+ self.assertEqual(environ['bfg.routes.matchdict'], {'path_info':'c/d'})
+ self.assertEqual(environ['PATH_INFO'], '/c/d')
+ self.assertEqual(environ['SCRIPT_NAME'], '/a/b')
+
+ def test_matches_with_path_info_with_scriptname(self):
+ root_factory = make_get_root(123)
+ mapper = self._makeOne(root_factory)
+ mapper.connect('root', '/a/b/*path_info')
+ environ = self._getEnviron(PATH_INFO='/a/b/c/d', SCRIPT_NAME='z')
+ result = mapper(environ)
+ self.assertEqual(result, 123)
+ self.assertEqual(environ['bfg.routes.route'].name, 'root')
+ self.assertEqual(environ['bfg.routes.matchdict'], {'path_info':'c/d'})
+ self.assertEqual(environ['PATH_INFO'], '/c/d')
+ self.assertEqual(environ['SCRIPT_NAME'], 'z/a/b')
+
+ def test_matches_PATH_INFO_w_extra_slash(self):
+ root_factory = make_get_root(123)
+ mapper = self._makeOne(root_factory)
+ mapper.connect('root', '/a/b/*path_info')
+ environ = self._getEnviron(PATH_INFO='/a/b//c/d', SCRIPT_NAME='')
+ result = mapper(environ)
+ self.assertEqual(result, 123)
+ self.assertEqual(environ['bfg.routes.route'].name, 'root')
+ self.assertEqual(environ['bfg.routes.matchdict'], {'path_info':'/c/d'})
+ self.assertEqual(environ['PATH_INFO'], '/c/d')
+ self.assertEqual(environ['SCRIPT_NAME'], '/a/b')
+
+ def test_matches_SCRIPT_NAME_endswith_slash(self):
+ root_factory = make_get_root(123)
+ mapper = self._makeOne(root_factory)
+ mapper.connect('root', '/a/b//*path_info')
+ environ = self._getEnviron(PATH_INFO='/a/b//c/d', SCRIPT_NAME='')
+ result = mapper(environ)
+ self.assertEqual(result, 123)
+ self.assertEqual(environ['bfg.routes.route'].name, 'root')
+ self.assertEqual(environ['bfg.routes.matchdict'], {'path_info':'c/d'})
+ self.assertEqual(environ['PATH_INFO'], '/c/d')
+ self.assertEqual(environ['SCRIPT_NAME'], '/a/b')
+
def test_unicode_in_route_default(self):
root_factory = make_get_root(123)
mapper = self._makeOne(root_factory)