diff options
| author | Chris McDonough <chrism@plope.com> | 2011-10-16 19:44:39 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2011-10-16 19:44:39 -0400 |
| commit | 63fcedab6f82f1ef94932ca22d2aea1debebe032 (patch) | |
| tree | 8fd30d31567aeba8d1110fcbda451d8c8f2d323d | |
| parent | a0e3cbc5620776569f3c46180a527d6c6143f0f8 (diff) | |
| download | pyramid-63fcedab6f82f1ef94932ca22d2aea1debebe032.tar.gz pyramid-63fcedab6f82f1ef94932ca22d2aea1debebe032.tar.bz2 pyramid-63fcedab6f82f1ef94932ca22d2aea1debebe032.zip | |
- A ``mako.directories`` setting is no longer required to use Mako templates
Rationale: Mako template renderers can be specified using an absolute asset
spec. An entire application can be written with such asset specs,
requiring no ordered lookup path.
| -rw-r--r-- | CHANGES.txt | 5 | ||||
| -rw-r--r-- | pyramid/mako_templating.py | 5 | ||||
| -rw-r--r-- | pyramid/tests/test_mako_templating.py | 12 |
3 files changed, 15 insertions, 7 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index b55ec5e0d..631ae1246 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,6 +6,11 @@ Features - Python 3.2 compatibility. +- A ``mako.directories`` setting is no longer required to use Mako templates + Rationale: Mako template renderers can be specified using an absolute asset + spec. An entire application can be written with such asset specs, + requiring no ordered lookup path. + Bug Fixes --------- diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py index 29be339f2..cb8f0b264 100644 --- a/pyramid/mako_templating.py +++ b/pyramid/mako_templating.py @@ -64,7 +64,7 @@ def renderer_factory(info): lookup = registry.queryUtility(IMakoLookup) if lookup is None: reload_templates = settings.get('reload_templates', False) - directories = settings.get('mako.directories', None) + directories = settings.get('mako.directories', []) module_directory = settings.get('mako.module_directory', None) input_encoding = settings.get('mako.input_encoding', 'utf-8') error_handler = settings.get('mako.error_handler', None) @@ -72,9 +72,6 @@ def renderer_factory(info): imports = settings.get('mako.imports', None) strict_undefined = settings.get('mako.strict_undefined', 'false') preprocessor = settings.get('mako.preprocessor', None) - if directories is None: - raise ConfigurationError( - 'Mako template used without a ``mako.directories`` setting') if not is_nonstr_iter(directories): directories = list(filter(None, directories.splitlines())) directories = [ abspath_from_asset_spec(d) for d in directories ] diff --git a/pyramid/tests/test_mako_templating.py b/pyramid/tests/test_mako_templating.py index 981a5056e..4c444facf 100644 --- a/pyramid/tests/test_mako_templating.py +++ b/pyramid/tests/test_mako_templating.py @@ -22,14 +22,20 @@ class Test_renderer_factory(Base, unittest.TestCase): return renderer_factory(info) def test_no_directories(self): - from pyramid.exceptions import ConfigurationError + from pyramid.mako_templating import IMakoLookup info = DummyRendererInfo({ - 'name':'helloworld.mak', + 'name':'pyramid.tests:fixtures/helloworld.mak', 'package':None, 'registry':self.config.registry, 'settings':{}, }) - self.assertRaises(ConfigurationError, self._callFUT, info) + renderer = self._callFUT(info) + lookup = self.config.registry.getUtility(IMakoLookup) + self.assertEqual(lookup.directories, []) + self.assertEqual(lookup.filesystem_checks, False) + self.assertEqual(renderer.path, + 'pyramid.tests:fixtures/helloworld.mak') + self.assertEqual(renderer.lookup, lookup) def test_no_lookup(self): from pyramid.mako_templating import IMakoLookup |
