From eac71fc1109f2edc6b71e62a6cff38d762bebe63 Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Tue, 25 Sep 2012 11:49:15 -0400 Subject: expanded pylint coverage --- .../Testlib/TestServer/TestPlugins/TestMetadata.py | 14 ++++---- .../Testlib/TestServer/TestPlugins/TestProbes.py | 38 ++++++++++++++++++---- 2 files changed, 38 insertions(+), 14 deletions(-) (limited to 'testsuite/Testsrc/Testlib') diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py index 2aebb0705..13e514e77 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestMetadata.py @@ -96,11 +96,11 @@ def get_metadata_object(core=None, watch_clients=False, use_db=False): class TestMetadataDB(DBModelTestCase): - if has_django: + if HAS_DJANGO: models = [MetadataClientModel] -if has_django or can_skip: +if HAS_DJANGO or can_skip: class TestClientVersions(Bcfg2TestCase): test_clients = dict(client1="1.2.0", client2="1.2.2", @@ -109,7 +109,7 @@ if has_django or can_skip: client5=None, client6=None) - @skipUnless(has_django, "Django not found") + @skipUnless(HAS_DJANGO, "Django not found") def setUp(self): syncdb(TestMetadataDB) for client, version in self.test_clients.items(): @@ -421,7 +421,7 @@ class TestMetadata(_TestMetadata, TestStatistics, TestDatabaseBacked): return get_metadata_object(core=core, watch_clients=watch_clients, use_db=self.use_db) - @skipUnless(has_django, "Django not found") + @skipUnless(HAS_DJANGO, "Django not found") def test__use_db(self): # with the way we've set up our metadata tests, it's unweildy # to test _use_db. however, given the way get_obj works, if @@ -1184,7 +1184,7 @@ class TestMetadataBase(TestMetadata): __test__ = False use_db = True - @skipUnless(has_django, "Django not found") + @skipUnless(HAS_DJANGO, "Django not found") def setUp(self): syncdb(TestMetadataDB) @@ -1291,7 +1291,7 @@ class TestMetadata_NoClientsXML(TestMetadataBase): # have django. otherwise they'll all get run because our fake # skipping decorators for python < 2.7 won't work when they # decorate setUp() - if can_skip or has_django: + if can_skip or HAS_DJANGO: __test__ = True def load_groups_data(self, metadata=None, xdata=None): @@ -1456,7 +1456,7 @@ class TestMetadata_ClientsXML(TestMetadataBase): # have django. otherwise they'll all get run because our fake # skipping decorators for python < 2.7 won't work when they # decorate setUp() - if can_skip or has_django: + if can_skip or HAS_DJANGO: __test__ = True def load_clients_data(self, metadata=None, xdata=None): diff --git a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py index 34b2a0f0e..0ad92ca72 100644 --- a/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py +++ b/testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProbes.py @@ -25,6 +25,7 @@ from TestPlugin import TestEntrySet, TestProbing, TestConnector, \ # test data for JSON and YAML tests test_data = dict(a=1, b=[1, 2, 3], c="test") + class FakeList(list): pass @@ -32,7 +33,7 @@ class FakeList(list): class TestProbesDB(DBModelTestCase): if HAS_DJANGO: models = [ProbesGroupsModel, ProbesDataModel] - + class TestClientProbeDataSet(Bcfg2TestCase): def test__init(self): @@ -40,11 +41,12 @@ class TestClientProbeDataSet(Bcfg2TestCase): self.assertLessEqual(ds.timestamp, time.time()) self.assertIsInstance(ds, dict) self.assertNotIn("timestamp", ds) - + ds = ClientProbeDataSet(timestamp=123) self.assertEqual(ds.timestamp, 123) self.assertNotIn("timestamp", ds) + class TestProbeData(Bcfg2TestCase): def test_str(self): # a value that is not valid XML, JSON, or YAML @@ -108,10 +110,32 @@ class TestProbeSet(TestEntrySet): fam.AddMonitor.assert_called_with(datastore, ps) TestEntrySet.test__init(self) + def test_HandleEvent(self): + ps = self.get_obj() + ps.handle_event = Mock() + + # test that events on the data store itself are skipped + evt = Mock() + evt.filename = datastore + ps.HandleEvent(evt) + self.assertFalse(ps.handle_event.called) + + # test that events on probed.xml are skipped + evt.reset_mock() + evt.filename = "probed.xml" + ps.HandleEvent(evt) + self.assertFalse(ps.handle_event.called) + + # test that other events are processed appropriately + evt.reset_mock() + evt.filename = "fooprobe" + ps.HandleEvent(evt) + ps.handle_event.assert_called_with(evt) + @patch("%s.list" % builtins, FakeList) def test_get_probe_data(self): ps = self.get_obj() - + # build some fairly complex test data for this. in the end, # we want the probe data to include only the most specific # version of a given probe, and by basename only, not full @@ -209,7 +233,7 @@ text return {"foo.example.com": ["group", "group with spaces", "group-with-dashes"], "bar.example.com": []} - + def get_probes_object(self, use_db=False, load_data=None): core = Mock() core.setup.cfp.getboolean = Mock() @@ -229,7 +253,7 @@ text return Probes(core, datastore) return inner() - + def test__init(self): mock_load_data = Mock() probes = self.get_probes_object(load_data=mock_load_data) @@ -272,7 +296,7 @@ text probes.probedata = self.get_test_probedata() probes.cgroups = self.get_test_cgroups() probes._write_data_xml(None) - + mock_open.assert_called_with(os.path.join(datastore, probes.name, "probed.xml"), "w") data = lxml.etree.XML(mock_open.return_value.write.call_args[0][0]) @@ -333,7 +357,7 @@ text client = Mock() client.hostname = cname probes._write_data_db(client) - + pdata = ProbesDataModel.objects.filter(hostname=cname).all() self.assertEqual(len(pdata), len(probes.probedata[cname])) -- cgit v1.2.3-1-g7c22