From d809ac74d19342bcc84e4fe043697709b2001cc0 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Tue, 30 Jun 2009 21:02:00 +0000 Subject: - Add a ``reload_resources`` configuration file setting (aka the ``BFG_RELOAD_RESOURCES`` environment variable). When this is set to true, the server never needs to be restarted when moving files between directory resource overrides (esp. for templates currently). - Add a ``reload_all`` configuration file setting (aka the ``BFG_RELOAD_ALL`` environment variable) that implies both ``reload_resources`` and ``reload_templates``. - The ``static`` helper view class now uses a ``PackageURLParser`` in order to allow for the overriding of static resources (CSS / logo files, etc) using the ``resource`` ZCML directive. The ``PackageURLParser`` class was added to a (new) ``static`` module in BFG; it is a subclass of the ``StaticURLParser`` class in ``paste.urlparser``. - The ``repoze.bfg.templating.renderer_from_cache`` function now checks for the ``reload_resources`` setting; if it's true, it does not register a template renderer (it won't use the registry as a template renderer cache). - Add ``pkg_resources`` to the glossary. - Update the "Environment" docs to note the existence of ``reload_resources`` and ``reload_all``. - Use a colon instead of a tab as the separator between package name and relpath to form the "spec" when register a ITemplateRenderer. --- repoze/bfg/tests/test_templating.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'repoze/bfg/tests/test_templating.py') diff --git a/repoze/bfg/tests/test_templating.py b/repoze/bfg/tests/test_templating.py index d413acc2e..361cf6f7e 100644 --- a/repoze/bfg/tests/test_templating.py +++ b/repoze/bfg/tests/test_templating.py @@ -57,7 +57,7 @@ class TestRendererFromCache(unittest.TestCase): from repoze.bfg import tests module_name = tests.__name__ relpath = 'test_templating.py' - spec = '%s\t%s' % (module_name, relpath) + spec = '%s:%s' % (module_name, relpath) renderer = {} testing.registerUtility(renderer, ITemplateRenderer, name=spec) result = self._callFUT('test_templating.py', None) @@ -68,7 +68,6 @@ class TestRendererFromCache(unittest.TestCase): from repoze.bfg.tests import test_templating module_name = test_templating.__name__ relpath = 'test_templating.py' - spec = '%s\t%s' % (module_name, relpath) renderer = {} factory = DummyFactory(renderer) result = self._callFUT('test_templating.py', factory) @@ -79,6 +78,34 @@ class TestRendererFromCache(unittest.TestCase): self.assertEqual(factory.path, path) self.assertEqual(factory.kw, {}) + def test_relpath_notyetregistered_reload_resources_true(self): + from zope.component import queryUtility + from repoze.bfg.interfaces import ISettings + from repoze.bfg.interfaces import ITemplateRenderer + settings = {'reload_resources':True} + testing.registerUtility(settings, ISettings) + renderer = {} + factory = DummyFactory(renderer) + result = self._callFUT('test_templating.py', factory) + self.failUnless(result is renderer) + spec = '%s:%s' % ('repoze.bfg.tests', 'test_templating.py') + self.assertEqual(queryUtility(ITemplateRenderer, name=spec), + None) + + def test_relpath_notyetregistered_reload_resources_false(self): + from zope.component import queryUtility + from repoze.bfg.interfaces import ISettings + from repoze.bfg.interfaces import ITemplateRenderer + settings = {'reload_resources':False} + testing.registerUtility(settings, ISettings) + renderer = {} + factory = DummyFactory(renderer) + result = self._callFUT('test_templating.py', factory) + self.failUnless(result is renderer) + spec = '%s:%s' % ('repoze.bfg.tests', 'test_templating.py') + self.assertNotEqual(queryUtility(ITemplateRenderer, name=spec), + None) + class DummyFactory: def __init__(self, renderer): self.renderer = renderer -- cgit v1.2.3