From 45c7bbf24ae3c6530f33ebb33c062818ad44816d Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 30 Oct 2012 11:35:46 -0400 Subject: added a module-level FAM object to avoid passing it as an argument a billion times --- .../Testlib/TestServer/TestPlugins/TestMetadata.py | 53 ++++++++++++---------- .../Testlib/TestServer/TestPlugins/TestProbes.py | 22 +++++---- 2 files changed, 41 insertions(+), 34 deletions(-) (limited to 'testsuite/Testsrc/Testlib/TestServer') diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py index f627e4465..b1db34462 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py @@ -6,6 +6,7 @@ import socket import lxml.etree import Bcfg2.Server import Bcfg2.Server.Plugin +from Bcfg2.Server.FileMonitor import _FAM from Bcfg2.Server.Plugins.Metadata import * from mock import Mock, MagicMock, patch @@ -206,8 +207,7 @@ class TestXMLMetadataConfig(TestXMLFileBacked): def test__init(self): xmc = self.get_obj() - self.assertEqual(self.metadata.core.fam, xmc.fam) - self.assertFalse(xmc.fam.AddMonitor.called) + self.assertFalse(_FAM.AddMonitor.called) def test_xdata(self): config = self.get_obj() @@ -259,12 +259,12 @@ class TestXMLMetadataConfig(TestXMLFileBacked): config.extras = [] config.add_monitor(fpath) - self.assertFalse(core.fam.AddMonitor.called) + self.assertFalse(_FAM.AddMonitor.called) self.assertEqual(config.extras, [fpath]) config = self.get_obj(core=core, watch_clients=True) config.add_monitor(fpath) - core.fam.AddMonitor.assert_called_with(fpath, config.metadata) + _FAM.AddMonitor.assert_called_with(fpath, config.metadata) self.assertItemsEqual(config.extras, [fpath]) def test_Index(self): @@ -501,20 +501,22 @@ class TestMetadata(_TestMetadata, TestStatistics, TestDatabaseBacked): self.assertEqual(metadata.states, dict()) # test with watch_clients=True - core.fam = MagicMock() + fam = Bcfg2.Server.FileMonitor._FAM + Bcfg2.Server.FileMonitor._FAM = MagicMock() metadata = self.get_obj(core=core, watch_clients=True) self.assertEqual(len(metadata.states), 2) - core.fam.AddMonitor.assert_any_call(os.path.join(metadata.data, - "groups.xml"), - metadata) - core.fam.AddMonitor.assert_any_call(os.path.join(metadata.data, - "clients.xml"), - metadata) - - core.fam.reset_mock() - core.fam.AddMonitor = Mock(side_effect=IOError) + Bcfg2.Server.FileMonitor._FAM.AddMonitor.assert_any_call(os.path.join(metadata.data, + "groups.xml"), + metadata) + Bcfg2.Server.FileMonitor._FAM.AddMonitor.assert_any_call(os.path.join(metadata.data, + "clients.xml"), + metadata) + + Bcfg2.Server.FileMonitor._FAM.reset_mock() + Bcfg2.Server.FileMonitor._FAM.AddMonitor = Mock(side_effect=IOError) self.assertRaises(Bcfg2.Server.Plugin.PluginInitError, self.get_obj, core=core, watch_clients=True) + Bcfg2.Server.FileMonitor._FAM = fam @patch('os.makedirs', Mock()) @patch('%s.open' % builtins) @@ -1260,17 +1262,17 @@ class TestMetadataBase(TestMetadata): @patch('os.path.exists') def test__init(self, mock_exists): - core = MagicMock() - core.fam = Mock() + fam = Bcfg2.Server.FileMonitor._FAM + Bcfg2.Server.FileMonitor._FAM = MagicMock() mock_exists.return_value = False - metadata = self.get_obj(core=core, watch_clients=True) + metadata = self.get_obj(watch_clients=True) self.assertIsInstance(metadata, Bcfg2.Server.Plugin.DatabaseBacked) - core.fam.AddMonitor.assert_called_once_with(os.path.join(metadata.data, - "groups.xml"), - metadata) + Bcfg2.Server.FileMonitor._FAM.AddMonitor.assert_called_once_with( + os.path.join(metadata.data, "groups.xml"), + metadata) mock_exists.return_value = True - core.fam.reset_mock() + Bcfg2.Server.FileMonitor._FAM.reset_mock() metadata = self.get_obj(core=core, watch_clients=True) core.fam.AddMonitor.assert_any_call(os.path.join(metadata.data, "groups.xml"), @@ -1516,9 +1518,12 @@ class TestMetadata_ClientsXML(TestMetadataBase): def load_clients_data(self, metadata=None, xdata=None): if metadata is None: metadata = self.get_obj() - metadata.core.fam = Mock() + fam = Bcfg2.Server.FileMonitor._FAM + Bcfg2.Server.FileMonitor._FAM = MagicMock() metadata.clients_xml = metadata._handle_file("clients.xml") metadata = TestMetadata.load_clients_data(self, metadata=metadata, xdata=xdata) - return TestMetadataBase.load_clients_data(self, metadata=metadata, - xdata=xdata) + rv = TestMetadataBase.load_clients_data(self, metadata=metadata, + xdata=xdata) + Bcfg2.Server.FileMonitor._FAM = fam + return rv diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py index 899fb24a0..2e1d6df51 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py @@ -16,6 +16,7 @@ while path != "/": break path = os.path.dirname(path) from common import * +from Bcfg2.Server.FileMonitor import _FAM from Bcfg2.Server.Plugins.Probes import * from TestPlugin import TestEntrySet, TestProbing, TestConnector, \ TestDatabaseBacked @@ -91,22 +92,23 @@ class TestProbeSet(TestEntrySet): ignore = ["foo~", ".#foo", ".foo.swp", ".foo.swx", "probed.xml"] bogus_names = ["test.py"] - def get_obj(self, path=datastore, fam=None, encoding=None, + def get_obj(self, path=datastore, encoding=None, plugin_name="Probes", basename=None): # get_obj() accepts the basename argument, accepted by the # parent get_obj() method, and just throws it away, since # ProbeSet uses a regex for the "basename" - if fam is None: - fam = Mock() - rv = self.test_obj(path, fam, encoding, plugin_name) + rv = self.test_obj(path, encoding, plugin_name) rv.entry_type = MagicMock() return rv def test__init(self): - fam = Mock() - ps = self.get_obj(fam=fam) + fam = Bcfg2.Server.FileMonitor._FAM + Bcfg2.Server.FileMonitor._FAM = Mock() + ps = self.get_obj() self.assertEqual(ps.plugin_name, "Probes") - fam.AddMonitor.assert_called_with(datastore, ps) + Bcfg2.Server.FileMonitor._FAM.AddMonitor.assert_called_with(datastore, + ps) + Bcfg2.Server.FileMonitor._FAM = fam TestEntrySet.test__init(self) def test_HandleEvent(self): @@ -256,9 +258,9 @@ text def test__init(self): mock_load_data = Mock() probes = self.get_probes_object(load_data=mock_load_data) - probes.core.fam.AddMonitor.assert_called_with(os.path.join(datastore, - probes.name), - probes.probes) + _FAM.AddMonitor.assert_called_with(os.path.join(datastore, + probes.name), + probes.probes) mock_load_data.assert_any_call() self.assertEqual(probes.probedata, ClientProbeDataSet()) self.assertEqual(probes.cgroups, dict()) -- cgit v1.2.3-1-g7c22