diff options
| author | Chris McDonough <chrism@plope.com> | 2010-11-24 19:01:49 -0500 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2010-11-24 19:01:49 -0500 |
| commit | b64d22c7e5692e10434eec83f6e2c64a4fed6a9e (patch) | |
| tree | 0d079f4a2bb30e680804ff1d7635cb0c73173f91 | |
| parent | 0cb7acf94d429a6019871308469a98bafecac923 (diff) | |
| download | pyramid-b64d22c7e5692e10434eec83f6e2c64a4fed6a9e.tar.gz pyramid-b64d22c7e5692e10434eec83f6e2c64a4fed6a9e.tar.bz2 pyramid-b64d22c7e5692e10434eec83f6e2c64a4fed6a9e.zip | |
allow imports, directories, and default_filters to be lists in settings
| -rw-r--r-- | pyramid/mako_templating.py | 11 | ||||
| -rw-r--r-- | pyramid/tests/test_mako_templating.py | 41 |
2 files changed, 48 insertions, 4 deletions
diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py index c9c041edb..3ef2868a5 100644 --- a/pyramid/mako_templating.py +++ b/pyramid/mako_templating.py @@ -71,7 +71,8 @@ def renderer_factory(info): if directories is None: raise ConfigurationError( 'Mako template used without a ``mako.directories`` setting') - directories = filter(None, directories.splitlines()) + if not hasattr(directories, '__iter__'): + directories = filter(None, directories.splitlines()) directories = [ abspath_from_resource_spec(d) for d in directories ] if module_directory is not None: module_directory = abspath_from_resource_spec(module_directory) @@ -79,9 +80,11 @@ def renderer_factory(info): dotted = DottedNameResolver(info.package) error_handler = dotted.maybe_resolve(error_handler) if default_filters is not None: - default_filters = filter(None, default_filters.splitlines()) - if imports: - imports = filter(None, imports.splitlines()) + if not hasattr(default_filters, '__iter__'): + default_filters = filter(None, default_filters.splitlines()) + if imports is not None: + if not hasattr(imports, '__iter__'): + imports = filter(None, imports.splitlines()) lookup = PkgResourceTemplateLookup(directories=directories, module_directory=module_directory, diff --git a/pyramid/tests/test_mako_templating.py b/pyramid/tests/test_mako_templating.py index cfb54b902..4b75e1a28 100644 --- a/pyramid/tests/test_mako_templating.py +++ b/pyramid/tests/test_mako_templating.py @@ -59,6 +59,19 @@ class Test_renderer_factory(Base, unittest.TestCase): lookup = self.config.registry.getUtility(IMakoLookup) self.assertEqual(lookup.directories, [self.templates_dir]*2) + def test_directories_list(self): + from pyramid.mako_templating import IMakoLookup + settings = {'mako.directories':['a', 'b']} + info = DummyRendererInfo({ + 'name':'helloworld.mak', + 'package':None, + 'registry':self.config.registry, + 'settings':settings, + }) + self._callFUT(info) + lookup = self.config.registry.getUtility(IMakoLookup) + self.assertEqual(lookup.directories, ['a', 'b']) + def test_with_module_directory_resource_spec(self): import os from pyramid.mako_templating import IMakoLookup @@ -135,6 +148,20 @@ class Test_renderer_factory(Base, unittest.TestCase): lookup = self.config.registry.getUtility(IMakoLookup) self.assertEqual(lookup.template_args['default_filters'], ['h', 'g']) + def test_with_default_filters_list(self): + from pyramid.mako_templating import IMakoLookup + settings = {'mako.directories':self.templates_dir, + 'mako.default_filters':['h', 'g']} + info = DummyRendererInfo({ + 'name':'helloworld.mak', + 'package':None, + 'registry':self.config.registry, + 'settings':settings, + }) + self._callFUT(info) + lookup = self.config.registry.getUtility(IMakoLookup) + self.assertEqual(lookup.template_args['default_filters'], ['h', 'g']) + def test_with_imports(self): from pyramid.mako_templating import IMakoLookup settings = {'mako.directories':self.templates_dir, @@ -149,6 +176,20 @@ class Test_renderer_factory(Base, unittest.TestCase): lookup = self.config.registry.getUtility(IMakoLookup) self.assertEqual(lookup.template_args['imports'], ['one', 'two']) + def test_with_imports_list(self): + from pyramid.mako_templating import IMakoLookup + settings = {'mako.directories':self.templates_dir, + 'mako.imports':['one', 'two']} + info = DummyRendererInfo({ + 'name':'helloworld.mak', + 'package':None, + 'registry':self.config.registry, + 'settings':settings, + }) + self._callFUT(info) + lookup = self.config.registry.getUtility(IMakoLookup) + self.assertEqual(lookup.template_args['imports'], ['one', 'two']) + def test_with_lookup(self): from pyramid.mako_templating import IMakoLookup lookup = dict() |
