diff options
| author | Chris McDonough <chrism@plope.com> | 2010-10-31 22:02:50 -0400 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2010-10-31 22:02:50 -0400 |
| commit | 6f1973b325cba5600eb91ff6982baf68b4567336 (patch) | |
| tree | dfaf978e15ee5b4b1199d40575c3075c57de23ff | |
| parent | 04bcc2a67e866df226ec2f5ec1baa2754bbe354d (diff) | |
| download | pyramid-6f1973b325cba5600eb91ff6982baf68b4567336.tar.gz pyramid-6f1973b325cba5600eb91ff6982baf68b4567336.tar.bz2 pyramid-6f1973b325cba5600eb91ff6982baf68b4567336.zip | |
defer looking up settings until rendering time (no settings registered yet)
| -rw-r--r-- | pyramid/mako_templating.py | 2 | ||||
| -rw-r--r-- | pyramid/renderers.py | 6 | ||||
| -rw-r--r-- | pyramid/tests/test_configuration.py | 8 | ||||
| -rw-r--r-- | pyramid/tests/test_renderers.py | 2 |
4 files changed, 10 insertions, 8 deletions
diff --git a/pyramid/mako_templating.py b/pyramid/mako_templating.py index a414338af..9dc2b09e8 100644 --- a/pyramid/mako_templating.py +++ b/pyramid/mako_templating.py @@ -63,7 +63,7 @@ def renderer_factory(info): input_encoding = settings.get('mako.input_encoding', 'utf-8') if directories is None: raise ConfigurationError( - 'Mako template used without a lookup path') + 'Mako template used without a ``mako.directories`` setting') directories = directories.splitlines() directories = [ abspath_from_resource_spec(d) for d in directories ] lookup = PkgResourceTemplateLookup(directories=directories, diff --git a/pyramid/renderers.py b/pyramid/renderers.py index 14380cd16..6c2d20cce 100644 --- a/pyramid/renderers.py +++ b/pyramid/renderers.py @@ -212,10 +212,8 @@ def renderer_from_name(path, package=None): # XXX deprecate? class RendererHelper(object): def __init__(self, name=None, package=None, registry=None): - settings = None if registry is None: registry = get_current_registry() - settings = registry.queryUtility(ISettings) if name and '.' in name: rtype = os.path.splitext(name)[1] @@ -229,10 +227,10 @@ class RendererHelper(object): self.type = rtype self.factory = factory self.registry = registry - self.settings = settings @reify def renderer(self): + settings = self.registry.queryUtility(ISettings) if self.factory is None: raise ValueError( 'No such renderer factory %s' % str(self.type)) @@ -241,7 +239,7 @@ class RendererHelper(object): 'type':self.type, 'package':self.package, 'registry':self.registry, - 'settings':self.settings, + 'settings':settings, }) def get_renderer(self): diff --git a/pyramid/tests/test_configuration.py b/pyramid/tests/test_configuration.py index 0ff65d309..5a75fdae4 100644 --- a/pyramid/tests/test_configuration.py +++ b/pyramid/tests/test_configuration.py @@ -1354,6 +1354,7 @@ class ConfiguratorTests(unittest.TestCase): def test_add_view_with_template_renderer(self): import pyramid.tests + from pyramid.interfaces import ISettings class view(object): def __init__(self, context, request): self.request = request @@ -1369,14 +1370,16 @@ class ConfiguratorTests(unittest.TestCase): request = self._makeRequest(config) result = wrapper(None, request) self.assertEqual(result.body, 'Hello!') + settings = config.registry.queryUtility(ISettings) self.assertEqual(renderer.info, {'registry':config.registry, 'type': '.txt', 'name': 'pyramid.tests:fixtures/minimal.txt', 'package': pyramid.tests, - 'settings':None}) + 'settings':settings}) def test_add_view_with_template_renderer_no_callable(self): import pyramid.tests + from pyramid.interfaces import ISettings config = self._makeOne() renderer = self._registerRenderer(config) fixture = 'pyramid.tests:fixtures/minimal.txt' @@ -1385,12 +1388,13 @@ class ConfiguratorTests(unittest.TestCase): request = self._makeRequest(config) result = wrapper(None, request) self.assertEqual(result.body, 'Hello!') + settings = config.registry.queryUtility(ISettings) self.assertEqual(renderer.info, {'registry':config.registry, 'type': '.txt', 'name': 'pyramid.tests:fixtures/minimal.txt', 'package':pyramid.tests, - 'settings':None, + 'settings':settings, }) def test_add_view_with_request_type_as_iface(self): diff --git a/pyramid/tests/test_renderers.py b/pyramid/tests/test_renderers.py index 018efa2d4..80c04c940 100644 --- a/pyramid/tests/test_renderers.py +++ b/pyramid/tests/test_renderers.py @@ -290,7 +290,7 @@ class TestRendererHelper(unittest.TestCase): factory = self._registerRendererFactory() class DummyRegistry(object): def __init__(self): - self.responses = [factory, lambda *arg: {}] + self.responses = [factory, lambda *arg: {}, None] def queryUtility(self, iface, name=None): self.queried = True return self.responses.pop(0) |
