summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--repoze/bfg/tests/test_traversal.py18
-rw-r--r--repoze/bfg/traversal.py2
2 files changed, 13 insertions, 7 deletions
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index 04dfd1bca..6459ed1af 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -8,33 +8,39 @@ class SplitPathTests(unittest.TestCase):
return split_path(path)
def test_path_startswith_endswith(self):
- self.assertEqual(self._callFUT('/foo/'), [u'foo'])
+ self.assertEqual(self._callFUT('/foo/'), (u'foo',))
def test_empty_elements(self):
- self.assertEqual(self._callFUT('foo///'), [u'foo'])
+ self.assertEqual(self._callFUT('foo///'), (u'foo',))
def test_onedot(self):
- self.assertEqual(self._callFUT('foo/./bar'), [u'foo', u'bar'])
+ self.assertEqual(self._callFUT('foo/./bar'), (u'foo', u'bar'))
def test_twodots(self):
- self.assertEqual(self._callFUT('foo/../bar'), [u'bar'])
+ self.assertEqual(self._callFUT('foo/../bar'), (u'bar',))
def test_element_urllquoted(self):
self.assertEqual(self._callFUT('/foo/space%20thing/bar'),
- [u'foo', u'space thing', u'bar'])
+ (u'foo', u'space thing', u'bar'))
def test_segments_are_unicode(self):
result = self._callFUT('/foo/bar')
self.assertEqual(type(result[0]), unicode)
self.assertEqual(type(result[1]), unicode)
+ def test_same_value_returned_if_cached(self):
+ result1 = self._callFUT('/foo/bar')
+ result2 = self._callFUT('/foo/bar')
+ self.assertEqual(result1, (u'foo', u'bar'))
+ self.assertEqual(result2, (u'foo', u'bar'))
+
def test_utf8(self):
import urllib
la = 'La Pe\xc3\xb1a'
encoded = urllib.quote(la)
decoded = unicode(la, 'utf-8')
path = '/'.join([encoded, encoded])
- self.assertEqual(self._callFUT(path), [decoded, decoded])
+ self.assertEqual(self._callFUT(path), (decoded, decoded))
def test_utf16(self):
import urllib
diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py
index 2d56f9302..7adef4011 100644
--- a/repoze/bfg/traversal.py
+++ b/repoze/bfg/traversal.py
@@ -120,7 +120,7 @@ def split_path(path):
raise TypeError('Could not decode path segment %r using the '
'UTF-8 decoding scheme' % segment)
clean.append(segment)
- return clean
+ return tuple(clean)
_marker = object()