From 59f8017b4a4aa9767bab49b39db362e973bdacf1 Mon Sep 17 00:00:00 2001 From: Blaise Laflamme Date: Tue, 19 Jun 2012 19:28:55 -0400 Subject: removed .makodef, use tuple value if defname in renderer (bw compat), changed format for package:some/template#defname.mako --- pyramid/config/rendering.py | 1 - pyramid/mako_templating.py | 7 ++++++- pyramid/tests/test_mako_templating.py | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pyramid/config/rendering.py b/pyramid/config/rendering.py index bfa41ee03..926511b7b 100644 --- a/pyramid/config/rendering.py +++ b/pyramid/config/rendering.py @@ -21,7 +21,6 @@ DEFAULT_RENDERERS = ( ('.pt', chameleon_zpt.renderer_factory), ('.mak', mako_renderer_factory), ('.mako', mako_renderer_factory), - ('.makodef', mako_renderer_factory), ('json', renderers.json_renderer_factory), ('string', renderers.string_renderer_factory), ) diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py index f866e2630..8bd9381f0 100644 --- a/pyramid/mako_templating.py +++ b/pyramid/mako_templating.py @@ -80,8 +80,10 @@ class MakoRendererFactoryHelper(object): p = re.compile( r'(?P[\w_.:/]+)' r'(?:\#(?P[\w_]+))?' + r'(\.(?P.*))' ) - path, defname = p.match(info.name).group("path", "defname") + asset, defname, ext = p.match(info.name).group('path', 'defname', 'ext') + path = '%s.%s' % (asset, ext) registry = info.registry settings = info.settings settings_prefix = self.settings_prefix @@ -176,6 +178,9 @@ class MakoLookupTemplateRenderer(object): if self.defname is None: if isinstance(value, tuple): self.defname, value = value + else: + if isinstance(value, tuple): + _, value = value try: system.update(value) except (TypeError, ValueError): diff --git a/pyramid/tests/test_mako_templating.py b/pyramid/tests/test_mako_templating.py index 6cfa3ea4b..41fa9bdc4 100644 --- a/pyramid/tests/test_mako_templating.py +++ b/pyramid/tests/test_mako_templating.py @@ -353,6 +353,14 @@ class MakoLookupTemplateRendererTests(Base, unittest.TestCase): self.assertTrue(isinstance(result, text_type)) self.assertEqual(result, text_('result')) + def test_call_with_defname_with_tuple_value(self): + lookup = DummyLookup() + instance = self._makeOne('path', 'defname', lookup) + result = instance(('defname', {}), {'context':1}) + self.assertEqual(lookup.deffed, 'defname') + self.assertEqual(result, text_('result')) + self.assertEqual(lookup.values, {'_context':1}) + def test_call_with_nondict_value(self): lookup = DummyLookup() instance = self._makeOne('path', None, lookup) -- cgit v1.2.3