From a9f28d4f1322009f46e821819c389d69f3ae1b0c Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 6 Feb 2010 14:53:21 +0000 Subject: - 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. --- CHANGES.txt | 8 +++++++ repoze/bfg/tests/test_traversal.py | 46 -------------------------------------- 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 -- cgit v1.2.3