From c4e1b49ff7d5b8f5860f5cc208476ff42159724e Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 29 Oct 2013 16:35:27 -0400 Subject: Plugins: Added TemplateDataProvider plugin interface This lets you provide variables to the top-level namespace of templates in a more seamless way than through a Connector plugin. It's mostly useful for TemplateHelper for now, but may find other uses in the future. --- .../TestPlugins/TestCfg/TestCfgCheetahGenerator.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgCheetahGenerator.py') diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgCheetahGenerator.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgCheetahGenerator.py index 2285fb458..93331304a 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgCheetahGenerator.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgCheetahGenerator.py @@ -26,12 +26,20 @@ class TestCfgCheetahGenerator(TestCfgGenerator): set_setup_default("repository", datastore) @patch("Bcfg2.Server.Plugins.Cfg.CfgCheetahGenerator.Template") - def test_get_data(self, mock_Template): + @patch("Bcfg2.Server.Plugins.Cfg.CfgCheetahGenerator.get_template_data") + def test_get_data(self, mock_get_template_data, mock_Template): ccg = self.get_obj() ccg.data = "data" entry = lxml.etree.Element("Path", name="/test.txt") metadata = Mock() + template_vars = dict(name=entry.get("name"), + metadata=metadata, + path=ccg.name, + source_path=ccg.name, + repo=datastore) + mock_get_template_data.return_value = template_vars + self.assertEqual(ccg.get_data(entry, metadata), mock_Template.return_value.respond.return_value) mock_Template.assert_called_with( @@ -39,8 +47,9 @@ class TestCfgCheetahGenerator(TestCfgGenerator): compilerSettings=ccg.settings) tmpl = mock_Template.return_value tmpl.respond.assert_called_with() - self.assertEqual(tmpl.metadata, metadata) - self.assertEqual(tmpl.name, entry.get("name")) - self.assertEqual(tmpl.path, entry.get("name")) - self.assertEqual(tmpl.source_path, ccg.name) - self.assertEqual(tmpl.repo, datastore) + for key, val in template_vars.items(): + self.assertEqual(getattr(tmpl, key), val) + self.assertItemsEqual(mock_get_template_data.call_args[0], + [entry, metadata, ccg.name]) + self.assertIsInstance(mock_get_template_data.call_args[1]['default'], + DefaultCheetahDataProvider) -- cgit v1.2.3-1-g7c22