summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2010-11-24 19:01:49 -0500
committerChris McDonough <chrism@plope.com>2010-11-24 19:01:49 -0500
commitb64d22c7e5692e10434eec83f6e2c64a4fed6a9e (patch)
tree0d079f4a2bb30e680804ff1d7635cb0c73173f91
parent0cb7acf94d429a6019871308469a98bafecac923 (diff)
downloadpyramid-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.py11
-rw-r--r--pyramid/tests/test_mako_templating.py41
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()