summaryrefslogtreecommitdiff
path: root/repoze/bfg/static.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-07-12 13:37:51 +0000
committerChris McDonough <chrism@agendaless.com>2010-07-12 13:37:51 +0000
commit9336d44d79232b021cc5f871aa43a384958e1920 (patch)
treee601ad3e09d6cbc0833767dc83022e94b271da46 /repoze/bfg/static.py
parent8139c97cbea01dc4e4f3ce2840e7359389775621 (diff)
downloadpyramid-9336d44d79232b021cc5f871aa43a384958e1920.tar.gz
pyramid-9336d44d79232b021cc5f871aa43a384958e1920.tar.bz2
pyramid-9336d44d79232b021cc5f871aa43a384958e1920.zip
- Fix regression in
``repoze.bfg.configuration.Configurator.add_static_view``. Before 1.3a4, view names that contained a slash were supported as route prefixes. 1.3a4 broke this by trying to treat them as full URLs.
Diffstat (limited to 'repoze/bfg/static.py')
-rw-r--r--repoze/bfg/static.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/repoze/bfg/static.py b/repoze/bfg/static.py
index f2dfa7897..36a855dfb 100644
--- a/repoze/bfg/static.py
+++ b/repoze/bfg/static.py
@@ -1,6 +1,7 @@
import os
import pkg_resources
from urlparse import urljoin
+from urlparse import urlparse
from paste import httpexceptions
from paste import request
@@ -94,10 +95,10 @@ class StaticURLInfo(object):
self.registrations = []
def generate(self, path, request, **kw):
- for (name, spec) in self.registrations:
+ for (name, spec, is_url) in self.registrations:
if path.startswith(spec):
subpath = path[len(spec):]
- if '/' in name:
+ if is_url:
return urljoin(name, subpath[1:])
else:
kw['subpath'] = subpath
@@ -111,11 +112,12 @@ class StaticURLInfo(object):
idx = names.index(name)
self.registrations.pop(idx)
- if '/' in name:
+ if urlparse(name)[0]:
# it's a URL
if not name.endswith('/'):
# make sure it ends with a slash
name = name + '/'
+ self.registrations.append((name, spec, True))
else:
# it's a view name
_info = extra.pop('_info', None)
@@ -130,8 +132,7 @@ class StaticURLInfo(object):
factory=lambda *x: self,
_info=_info
)
-
- self.registrations.append((name, spec))
+ self.registrations.append((name, spec, False))
class static_view(object):
""" An instance of this class is a callable which can act as a