summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-13 13:17:11 -0500
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-11-13 13:17:11 -0500
commitc767963bb758b50c7010bf2249221c72c95b8857 (patch)
treea194264d8eec8dee796c283d786331706b65beef
parent3b3fb259e81398ecfa838ed622f70e685f9eaaa7 (diff)
downloadbcfg2-c767963bb758b50c7010bf2249221c72c95b8857.tar.gz
bcfg2-c767963bb758b50c7010bf2249221c72c95b8857.tar.bz2
bcfg2-c767963bb758b50c7010bf2249221c72c95b8857.zip
Cfg: prevent genshi loader from caching templates
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py5
-rw-r--r--testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgGenshiGenerator.py37
2 files changed, 15 insertions, 27 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py
index ce77717da..cfb978c42 100644
--- a/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py
+++ b/src/lib/Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py
@@ -70,8 +70,8 @@ class CfgGenshiGenerator(CfgGenerator):
msg = "Cfg: Genshi is not available: %s" % fname
LOGGER.error(msg)
raise Bcfg2.Server.Plugin.PluginExecutionError(msg)
- self.loader = self.__loader_cls__()
self.template = None
+ self.loader = self.__loader_cls__(max_cache_size=0)
__init__.__doc__ = CfgGenerator.__init__.__doc__
def get_data(self, entry, metadata):
@@ -146,9 +146,6 @@ class CfgGenshiGenerator(CfgGenerator):
raise
def handle_event(self, event):
- CfgGenerator.handle_event(self, event)
- if self.data is None:
- return
try:
self.template = self.loader.load(self.name, cls=NewTextTemplate,
encoding=self.encoding)
diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgGenshiGenerator.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgGenshiGenerator.py
index baad10933..4a849c11a 100644
--- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgGenshiGenerator.py
+++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgGenshiGenerator.py
@@ -105,27 +105,18 @@ if can_skip or HAS_GENSHI:
self.assertTrue(cgg._handle_genshi_exception.called)
def test_handle_event(self):
- @patch("Bcfg2.Server.Plugins.Cfg.CfgGenerator.handle_event")
- def inner(mock_handle_event):
- cgg = self.get_obj()
- cgg.loader = Mock()
- cgg.data = "template data"
- event = Mock()
- cgg.handle_event(event)
- cgg.loader.load.assert_called_with(cgg.name,
- cls=NewTextTemplate,
- encoding=cgg.encoding)
-
- cgg.loader.reset_mock()
- cgg.loader.load.side_effect = OSError
- self.assertRaises(PluginExecutionError,
- cgg.handle_event, event)
- cgg.loader.load.assert_called_with(cgg.name,
- cls=NewTextTemplate,
- encoding=cgg.encoding)
+ cgg = self.get_obj()
+ cgg.loader = Mock()
+ event = Mock()
+ cgg.handle_event(event)
+ cgg.loader.load.assert_called_with(cgg.name,
+ cls=NewTextTemplate,
+ encoding=cgg.encoding)
- inner()
- loader_cls = self.test_obj.__loader_cls__
- self.test_obj.__loader_cls__ = Mock
- TestCfgGenerator.test_handle_event(self)
- self.test_obj.__loader_cls__ = loader_cls
+ cgg.loader.reset_mock()
+ cgg.loader.load.side_effect = OSError
+ self.assertRaises(PluginExecutionError,
+ cgg.handle_event, event)
+ cgg.loader.load.assert_called_with(cgg.name,
+ cls=NewTextTemplate,
+ encoding=cgg.encoding)