summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2013-04-01 11:44:49 -0500
committerMichael Merickel <michael@merickel.org>2013-04-01 11:44:49 -0500
commit1bb01464b86e85fa92913db954a3bd81eb637866 (patch)
treeb017c20d5138a9f6ccb1d9723ac0323b85a03664
parentc6587944a116ae8516b79a24f6161539c52c0f7e (diff)
parent961ff441cfdf3c4c963619e0f5476121c8880840 (diff)
downloadpyramid-1bb01464b86e85fa92913db954a3bd81eb637866.tar.gz
pyramid-1bb01464b86e85fa92913db954a3bd81eb637866.tar.bz2
pyramid-1bb01464b86e85fa92913db954a3bd81eb637866.zip
Merge branch 'fix.950' of Beanfield/pyramid into pull.952
-rw-r--r--CONTRIBUTORS.txt2
-rw-r--r--pyramid/mako_templating.py14
-rw-r--r--pyramid/tests/fixtures/hello .world.mako3
-rw-r--r--pyramid/tests/test_mako_templating.py28
4 files changed, 38 insertions, 9 deletions
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index 94eee9443..97eb54f7b 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -196,3 +196,5 @@ Contributors
- Bert JW Regeer, 2013/02/01
- Georges Dubus, 2013/03/21
+
+- Jason McKellar, 2013/03/28
diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py
index f2627c1fc..061bcb717 100644
--- a/pyramid/mako_templating.py
+++ b/pyramid/mako_templating.py
@@ -82,7 +82,6 @@ class PkgResourceTemplateLookup(TemplateLookup):
"Can not locate template for uri %r" % uri)
return TemplateLookup.get_template(self, uri)
-
registry_lock = threading.Lock()
class MakoRendererFactoryHelper(object):
@@ -90,14 +89,11 @@ class MakoRendererFactoryHelper(object):
self.settings_prefix = settings_prefix
def __call__(self, info):
- p = re.compile(
- r'(?P<asset>[\w_.:/-]+)'
- r'(?:\#(?P<defname>[\w_]+))?'
- r'(\.(?P<ext>.*))'
- )
- asset, defname, ext = p.match(info.name).group(
- 'asset', 'defname', 'ext'
- )
+ defname = None
+ asset, ext = info.name.rsplit('.', 1)
+ if '#' in asset:
+ asset, defname = asset.rsplit('#', 1)
+
path = '%s.%s' % (asset, ext)
registry = info.registry
settings = info.settings
diff --git a/pyramid/tests/fixtures/hello .world.mako b/pyramid/tests/fixtures/hello .world.mako
new file mode 100644
index 000000000..7a06eed97
--- /dev/null
+++ b/pyramid/tests/fixtures/hello .world.mako
@@ -0,0 +1,3 @@
+## -*- coding: utf-8 -*-
+<%!from pyramid.compat import text_%><% a, b = 'foo', text_('föö', 'utf-8') %>
+Hello ${text_('föö', 'utf-8')} \ No newline at end of file
diff --git a/pyramid/tests/test_mako_templating.py b/pyramid/tests/test_mako_templating.py
index 37264aa48..50ef360d9 100644
--- a/pyramid/tests/test_mako_templating.py
+++ b/pyramid/tests/test_mako_templating.py
@@ -270,6 +270,34 @@ class Test_renderer_factory(Base, unittest.TestCase):
self.assertEqual(renderer.lookup, lookup)
self.assertEqual(renderer.path, 'helloworld.mak')
+ def test_space_dot_name(self):
+ from pyramid.mako_templating import renderer_factory
+
+ info = DummyRendererInfo({
+ 'name':'hello .world.mako',
+ 'package':None,
+ 'registry':self.config.registry,
+ 'settings':{},
+ })
+
+ result = renderer_factory(info)
+ self.assertEqual(result.path, 'hello .world.mako')
+ self.assertTrue(result.defname is None)
+
+ def test_space_dot_name_def(self):
+ from pyramid.mako_templating import renderer_factory
+
+ info = DummyRendererInfo({
+ 'name':'hello .world#comp.mako',
+ 'package':None,
+ 'registry':self.config.registry,
+ 'settings':{},
+ })
+
+ result = renderer_factory(info)
+ self.assertEqual(result.path, 'hello .world.mako')
+ self.assertEqual(result.defname, 'comp')
+
class MakoRendererFactoryHelperTests(Base, unittest.TestCase):
def _getTargetClass(self):
from pyramid.mako_templating import MakoRendererFactoryHelper