diff options
| -rw-r--r-- | CHANGES.txt | 6 | ||||
| -rw-r--r-- | repoze/bfg/configuration.py | 5 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_configuration.py | 5 |
3 files changed, 12 insertions, 4 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 71164a681..44970b230 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,9 @@ +Next release +============ + +- The ``traverse`` route predicate could not successfully generate a + traversal path. + 1.3a12 (2010-09-08) =================== diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py index 5a97c4f38..06115abf7 100644 --- a/repoze/bfg/configuration.py +++ b/repoze/bfg/configuration.py @@ -2022,8 +2022,9 @@ def _make_predicates(xhr=None, request_method=None, path_info=None, def traverse_predicate(context, request): if 'traverse' in context: return True - tvalue = tgenerate(context) - context['traverse'] = traversal_path(tvalue) + m = context['match'] + tvalue = tgenerate(m) + m['traverse'] = traversal_path(tvalue) return True # This isn't actually a predicate, it's just a infodict # modifier that injects ``traverse`` into the matchdict. As a diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py index 062fbfa0b..2724b3381 100644 --- a/repoze/bfg/tests/test_configuration.py +++ b/repoze/bfg/tests/test_configuration.py @@ -3440,11 +3440,12 @@ class Test__make_predicates(unittest.TestCase): order, predicates, phash = self._callFUT(traverse='/1/:a/:b') self.assertEqual(len(predicates), 1) pred = predicates[0] - info = {'a':'a', 'b':'b'} + info = {'match':{'a':'a', 'b':'b'}} request = DummyRequest() result = pred(info, request) self.assertEqual(result, True) - self.assertEqual(info, {'a':'a', 'b':'b', 'traverse':('1', 'a', 'b')}) + self.assertEqual(info, {'match': + {'a':'a', 'b':'b', 'traverse':('1', 'a', 'b')}}) class TestMultiView(unittest.TestCase): def _getTargetClass(self): |
