summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/mako_templating.py2
-rw-r--r--pyramid/tests/test_mako_templating.py10
2 files changed, 12 insertions, 0 deletions
diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py
index 489c1f11a..2b09e8d45 100644
--- a/pyramid/mako_templating.py
+++ b/pyramid/mako_templating.py
@@ -43,6 +43,8 @@ class PkgResourceTemplateLookup(TemplateLookup):
if relativeto is not None:
relativeto = relativeto.replace('$', ':')
if not(':' in uri) and (':' in relativeto):
+ if uri.startswith('/'):
+ return uri
pkg, relto = relativeto.split(':')
_uri = posixpath.join(posixpath.dirname(relto), uri)
return '{0}:{1}'.format(pkg, _uri)
diff --git a/pyramid/tests/test_mako_templating.py b/pyramid/tests/test_mako_templating.py
index aced6c586..97b2c679b 100644
--- a/pyramid/tests/test_mako_templating.py
+++ b/pyramid/tests/test_mako_templating.py
@@ -499,6 +499,16 @@ class TestPkgResourceTemplateLookup(unittest.TestCase):
result = inst.adjust_uri('b', '../a')
self.assertEqual(result, '../b')
+ def test_adjust_uri_not_asset_spec_abs_with_relativeto_asset_spec(self):
+ inst = self._makeOne()
+ result = inst.adjust_uri('/c', 'a:b')
+ self.assertEqual(result, '/c')
+
+ def test_adjust_uri_asset_spec_with_relativeto_not_asset_spec_abs(self):
+ inst = self._makeOne()
+ result = inst.adjust_uri('a:b', '/c')
+ self.assertEqual(result, 'a:b')
+
def test_get_template_not_asset_spec(self):
fixturedir = self.get_fixturedir()
inst = self._makeOne(directories=[fixturedir])