summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-02-06 14:53:21 +0000
committerChris McDonough <chrism@agendaless.com>2010-02-06 14:53:21 +0000
commita9f28d4f1322009f46e821819c389d69f3ae1b0c (patch)
tree5a480329d32c02fa3856e9e67931f440a277a24a
parent604ad175a411bcfa46bc0d625a4b2ab5809389a0 (diff)
downloadpyramid-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.txt8
-rw-r--r--repoze/bfg/tests/test_traversal.py46
-rw-r--r--repoze/bfg/traversal.py13
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