summaryrefslogtreecommitdiff
path: root/repoze/bfg/traversal.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/traversal.py')
-rw-r--r--repoze/bfg/traversal.py20
1 files changed, 7 insertions, 13 deletions
diff --git a/repoze/bfg/traversal.py b/repoze/bfg/traversal.py
index e15bb8f20..b79f87d4c 100644
--- a/repoze/bfg/traversal.py
+++ b/repoze/bfg/traversal.py
@@ -614,20 +614,14 @@ class TraversalContextURL(object):
route = environ['bfg.routes.route']
matchdict = environ['bfg.routes.matchdict'].copy()
matchdict['traverse'] = path
- # we can't use route.generate here because our matchdict
- # keys are Unicode
- if route.minimization:
- segments = route.generate_minimized(matchdict)
- else:
- segments = route.generate_non_minimized(matchdict)
- if segments is False:
- raise ValueError(
- "Couldn't generate URL for matchdict %r" % matchdict)
+ 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
- if segments.startswith('/'):
- return app_url + segments
- else:
- return app_url + '/' + segments
+ return app_url + segments
else:
app_url = request.application_url # never ends in a slash
return app_url + path