Spaces and dots may now be in mako renderer template paths. Fixes #950.
1 files added
2 files modified
| | |
| | | "Can not locate template for uri %r" % uri) |
| | | return TemplateLookup.get_template(self, uri) |
| | | |
| | | |
| | | registry_lock = threading.Lock() |
| | | |
| | | 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 |
New file |
| | |
| | | ## -*- coding: utf-8 -*- |
| | | <%!from pyramid.compat import text_%><% a, b = 'foo', text_('föö', 'utf-8') %> |
| | | Hello ${text_('föö', 'utf-8')} |
| | |
| | | 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 |