summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_traversal.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_traversal.py')
-rw-r--r--repoze/bfg/tests/test_traversal.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index dcb47e6ed..12c7d3741 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -292,6 +292,24 @@ class FindModelTests(unittest.TestCase):
self.assertRaises(KeyError, self._callFUT, baz, '/')
self.assertEqual(dummy.wascontext, True)
+ def test_unicode_pathinfo_converted_to_utf8(self):
+ la = unicode('LaPe\xc3\xb1a', 'utf-8')
+
+ dummy = DummyContext()
+ dummy.__parent__ = None
+ dummy.__name__ = None
+ baz = DummyContext()
+ baz.__parent__ = dummy
+ baz.__name__ = la
+
+ traverser = make_traverser(baz, '', [])
+ self._registerTraverserFactory(traverser)
+ path = '/' + la
+ result = self._callFUT(baz, path)
+ self.assertEqual(result, baz)
+ self.assertEqual(dummy.wascontext, True)
+ self.assertEqual(dummy.environ['PATH_INFO'], path.encode('utf-8'))
+
class ModelPathTests(unittest.TestCase):
def _callFUT(self, model, *elements):
from repoze.bfg.traversal import model_path
@@ -335,8 +353,10 @@ class ModelPathTests(unittest.TestCase):
def make_traverser(*args):
class DummyTraverser(object):
def __init__(self, context):
+ self.context = context
context.wascontext = True
def __call__(self, environ):
+ self.context.environ = environ
return args
return DummyTraverser