diff options
| author | Michael Merickel <michael@merickel.org> | 2013-04-01 11:44:49 -0500 |
|---|---|---|
| committer | Michael Merickel <michael@merickel.org> | 2013-04-01 11:44:49 -0500 |
| commit | 1bb01464b86e85fa92913db954a3bd81eb637866 (patch) | |
| tree | b017c20d5138a9f6ccb1d9723ac0323b85a03664 | |
| parent | c6587944a116ae8516b79a24f6161539c52c0f7e (diff) | |
| parent | 961ff441cfdf3c4c963619e0f5476121c8880840 (diff) | |
| download | pyramid-1bb01464b86e85fa92913db954a3bd81eb637866.tar.gz pyramid-1bb01464b86e85fa92913db954a3bd81eb637866.tar.bz2 pyramid-1bb01464b86e85fa92913db954a3bd81eb637866.zip | |
Merge branch 'fix.950' of Beanfield/pyramid into pull.952
| -rw-r--r-- | CONTRIBUTORS.txt | 2 | ||||
| -rw-r--r-- | pyramid/mako_templating.py | 14 | ||||
| -rw-r--r-- | pyramid/tests/fixtures/hello .world.mako | 3 | ||||
| -rw-r--r-- | pyramid/tests/test_mako_templating.py | 28 |
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 |
