diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-08-16 15:57:51 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-08-16 15:57:51 -0400 |
commit | fc29986ddf780202651053aeafa308653f05d2dd (patch) | |
tree | 82e44af496d20506ead215f25b2fb5a0cc82a359 /testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py | |
parent | b2d11440759e79d8485a22ba71933b691ff749a4 (diff) | |
download | bcfg2-fc29986ddf780202651053aeafa308653f05d2dd.tar.gz bcfg2-fc29986ddf780202651053aeafa308653f05d2dd.tar.bz2 bcfg2-fc29986ddf780202651053aeafa308653f05d2dd.zip |
minor test fixes
Diffstat (limited to 'testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py')
-rw-r--r-- | testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py | 56 |
1 files changed, 35 insertions, 21 deletions
diff --git a/testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py b/testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py index 6aab04a89..4ea0e4fef 100644 --- a/testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py +++ b/testsuite/Testlib/TestServer/TestPlugins/TestMetadata.py @@ -82,7 +82,8 @@ def get_metadata_object(core=None, watch_clients=False, use_db=False): class TestMetadataDB(DBModelTestCase): - models = [MetadataClientModel] + if has_django: + models = [MetadataClientModel] class TestClientVersions(Bcfg2TestCase): @@ -216,38 +217,51 @@ class TestXMLMetadataConfig(TestXMLFileBacked): # Index() isn't used on XMLMetadataConfig objects pass - @patch("Bcfg2.Server.Plugins.Metadata.XMLMetadataConfig.add_monitor") @patch("lxml.etree.parse") - def test_load_xml(self, mock_parse, mock_add_monitor): + @patch("Bcfg2.Server.Plugins.Metadata.XMLMetadataConfig._follow_xincludes") + def test_load_xml(self, mock_follow, mock_parse): config = self.get_obj("clients.xml") + + def reset(): + mock_parse.reset_mock() + mock_follow.reset_mock() + config.data = None + config.basedata = None + + reset() + config.load_xml() + mock_follow.assert_called_with(xdata=mock_parse.return_value) + mock_parse.assert_called_with(os.path.join(config.basedir, + "clients.xml"), + parser=Bcfg2.Server.XMLParser) + self.assertFalse(mock_parse.return_value.xinclude.called) + self.assertEqual(config.data, mock_parse.return_value) + self.assertIsNotNone(config.basedata) + + reset() mock_parse.side_effect = lxml.etree.XMLSyntaxError(None, None, None, None) config.load_xml() + mock_parse.assert_called_with(os.path.join(config.basedir, + "clients.xml"), + parser=Bcfg2.Server.XMLParser) self.assertIsNone(config.data) self.assertIsNone(config.basedata) - config.data = None - config.basedata = None + reset() mock_parse.side_effect = None - mock_parse.return_value.findall = Mock(return_value=[]) + def follow_xincludes(xdata=None): + config.extras = [Mock(), Mock()] + mock_follow.side_effect = follow_xincludes config.load_xml() - self.assertIsNotNone(config.data) + mock_follow.assert_called_with(xdata=mock_parse.return_value) + mock_parse.assert_called_with(os.path.join(config.basedir, + "clients.xml"), + parser=Bcfg2.Server.XMLParser) + mock_parse.return_value.xinclude.assert_any_call() + self.assertEqual(config.data, mock_parse.return_value) self.assertIsNotNone(config.basedata) - config.data = None - config.basedata = None - - def side_effect(*args): - def second_call(*args): - return [] - mock_parse.return_value.findall.side_effect = second_call - return [lxml.etree.Element(XI + "include", href="more.xml"), - lxml.etree.Element(XI + "include", href="evenmore.xml")] - - mock_parse.return_value.findall = Mock(side_effect=side_effect) - config.load_xml() - mock_add_monitor.assert_any_call("more.xml") - mock_add_monitor.assert_any_call("evenmore.xml") @patch("Bcfg2.Server.Plugins.Metadata.XMLMetadataConfig.write_xml") def test_write(self, mock_write_xml): |