diff options
| author | Chris McDonough <chrism@agendaless.com> | 2010-02-06 14:53:21 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2010-02-06 14:53:21 +0000 |
| commit | a9f28d4f1322009f46e821819c389d69f3ae1b0c (patch) | |
| tree | 5a480329d32c02fa3856e9e67931f440a277a24a | |
| parent | 604ad175a411bcfa46bc0d625a4b2ab5809389a0 (diff) | |
| download | pyramid-a9f28d4f1322009f46e821819c389d69f3ae1b0c.tar.gz pyramid-a9f28d4f1322009f46e821819c389d69f3ae1b0c.tar.bz2 pyramid-a9f28d4f1322009f46e821819c389d69f3ae1b0c.zip | |
- Remove magical feature of ``repoze.bfg.url.model_url`` which
prepended a fully-expanded urldispatch route URL before a the
model's path if it was noticed that the request had matched a route.
This feature was ill-conceived, and didn't work in all scenarios.
| -rw-r--r-- | CHANGES.txt | 8 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_traversal.py | 46 | ||||
| -rw-r--r-- | repoze/bfg/traversal.py | 13 |
3 files changed, 8 insertions, 59 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 3f1778e80..8db866117 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,14 @@ Next release ============ +Backwards Incompatibilities +--------------------------- + +- Remove magical feature of ``repoze.bfg.url.model_url`` which + prepended a fully-expanded urldispatch route URL before a the + model's path if it was noticed that the request had matched a route. + This feature was ill-conceived, and didn't work in all scenarios. + Bug Fixes --------- diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py index 023b82643..77644bfea 100644 --- a/repoze/bfg/tests/test_traversal.py +++ b/repoze/bfg/tests/test_traversal.py @@ -788,52 +788,6 @@ class TraversalContextURLTests(unittest.TestCase): result = context_url() self.assertEqual(result, 'http://example.com:5432//bar/') - def test_with_minimized_route(self): - root = DummyContext() - root.__name__ = None - root.__parent__ = None - one = DummyContext() - one.__name__ = 'one' - one.__parent__ = root - route = DummyRoute() - route.minimization = True - request = DummyRequest({'bfg.routes.route':route, - 'bfg.routes.matchdict':{'a':1}}) - context_url = self._makeOne(one, request) - result = context_url() - self.assertEqual(result, 'http://example.com:5432/example/') - self.assertEqual(route.generate_kw, {'a':1, 'traverse':'/one/'}) - - def test_with_non_minimized_route(self): - root = DummyContext() - root.__name__ = None - root.__parent__ = None - one = DummyContext() - one.__name__ = 'one' - one.__parent__ = root - route = DummyRoute() - route.minimization = False - request = DummyRequest({'bfg.routes.route':route, - 'bfg.routes.matchdict':{'a':1}}) - context_url = self._makeOne(one, request) - result = context_url() - self.assertEqual(result, 'http://example.com:5432/example/') - self.assertEqual(route.generate_kw, {'a':1, 'traverse':'/one/'}) - - def test_with_route_generation_fail(self): - root = DummyContext() - root.__name__ = None - root.__parent__ = None - one = DummyContext() - one.__name__ = 'one' - one.__parent__ = root - route = DummyRoute() - route.raise_exc = KeyError - request = DummyRequest({'bfg.routes.route':route, - 'bfg.routes.matchdict':{'a':1}}) - context_url = self._makeOne(one, request) - self.assertRaises(KeyError, context_url) - class TestVirtualRoot(unittest.TestCase): def setUp(self): cleanUp() diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py index 496b874a2..bce239d3f 100644 --- a/repoze/bfg/traversal.py +++ b/repoze/bfg/traversal.py @@ -628,19 +628,6 @@ class TraversalContextURL(object): if path.startswith(vroot_path): path = path[len(vroot_path):] - if 'bfg.routes.route' in environ: - route = environ['bfg.routes.route'] - matchdict = environ['bfg.routes.matchdict'].copy() - matchdict['traverse'] = path - try: - segments = route.generate(matchdict) - except KeyError, why: - raise KeyError( - "Couldn't generate URL for matchdict %r: %s" % - (matchdict, str(why))) - app_url = request.application_url - return app_url + segments - app_url = request.application_url # never ends in a slash return app_url + path |
