From c767963bb758b50c7010bf2249221c72c95b8857 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 13 Nov 2012 13:17:11 -0500 Subject: Cfg: prevent genshi loader from caching templates --- .../Bcfg2/Server/Plugins/Cfg/CfgGenshiGenerator.py | 5 +-- .../TestPlugins/TestCfg/TestCfgGenshiGenerator.py | 37 ++++++++-------------- 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) -- cgit v1.2.3-1-g7c22