summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_traversal.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-09-23 10:51:52 +0000
committerChris McDonough <chrism@agendaless.com>2009-09-23 10:51:52 +0000
commit391afe80244035e5294b085fdc4324c56cc5f1ca (patch)
tree1852fdd152054e2a13d9e94c7a4f7ecce34dddcc /repoze/bfg/tests/test_traversal.py
parenteb9fbf5f24b5e41cadd1eac8ca970ba819ecb6a5 (diff)
downloadpyramid-391afe80244035e5294b085fdc4324c56cc5f1ca.tar.gz
pyramid-391afe80244035e5294b085fdc4324c56cc5f1ca.tar.bz2
pyramid-391afe80244035e5294b085fdc4324c56cc5f1ca.zip
- Speed up ``repoze.bfg.traversal.model_path``.
- Speed up ``repoze.bfg.traversal.model_path_tuple`` slightly. - Speed up ``repoze.bfg.traversal.traverse`` slightly. - In 0.8a7, the return value expected from an object implementing ``ITraverserFactory`` was changed from a sequence of values to a dictionary containing the keys ``context``, ``view_name``, ``subpath``, ``traversed``, ``virtual_root``, ``virtual_root_path``, and ``root``. Until now, old-style traversers which returned a sequence have continued to work but have generated a deprecation warning. In this release, traversers which return a sequence instead of a dictionary will no longer work.
Diffstat (limited to 'repoze/bfg/tests/test_traversal.py')
-rw-r--r--repoze/bfg/tests/test_traversal.py43
1 files changed, 11 insertions, 32 deletions
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index 3f347dc22..a4e90bc07 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -953,6 +953,17 @@ class TraverseTests(unittest.TestCase):
self.assertEqual(root.wascontext, True)
self.assertEqual(root.environ['PATH_INFO'], '/')
+ def test_empty_sequence(self):
+ root = DummyContext()
+ model = DummyContext()
+ model.__parent__ = root
+ model.__name__ = 'baz'
+ traverser = make_traverser({'context':root, 'view_name':''})
+ self._registerTraverserFactory(traverser)
+ self._callFUT(model, [])
+ self.assertEqual(model.wascontext, True)
+ self.assertEqual(model.environ['PATH_INFO'], '')
+
class UnderTraverseTests(unittest.TestCase):
def setUp(self):
cleanUp()
@@ -990,38 +1001,6 @@ class UnderTraverseTests(unittest.TestCase):
result = self._callFUT(context, None, traverser)
self.assertEqual(result, {'a':'1'})
- def test_issixtuple(self):
- traverser = make_traverser((1,2,3,4,5,6))
- self._registerTraverserFactory(traverser)
- context = DummyContext()
- result = self._callFUT(context, None)
- self.assertEqual(result['context'], 1)
- self.assertEqual(result['view_name'], 2)
- self.assertEqual(result['subpath'], 3)
- self.assertEqual(result['traversed'], 4)
- self.assertEqual(result['virtual_root'], 5)
- self.assertEqual(result['virtual_root_path'], 6)
- self.assertEqual(result['root'], None)
- self.failUnless(result['_deprecation_warning'].startswith(
- "<class 'repoze.bfg.tests.test_traversal.DummyTraverser'>"))
- self.failUnless("6-argument tuple" in result['_deprecation_warning'])
-
- def test_isthreetuple(self):
- traverser = make_traverser((1,2,3))
- self._registerTraverserFactory(traverser)
- context = DummyContext()
- result = self._callFUT(context, None)
- self.assertEqual(result['context'], 1)
- self.assertEqual(result['view_name'], 2)
- self.assertEqual(result['subpath'], 3)
- self.assertEqual(result['traversed'], None)
- self.assertEqual(result['virtual_root'], None)
- self.assertEqual(result['virtual_root_path'], None)
- self.assertEqual(result['root'], None)
- self.failUnless(result['_deprecation_warning'].startswith(
- "<class 'repoze.bfg.tests.test_traversal.DummyTraverser'>"))
- self.failUnless("3-argument tuple" in result['_deprecation_warning'])
-
def make_traverser(result):
class DummyTraverser(object):
def __init__(self, context):