Mark Bergsma has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/405297 )
Change subject: Add unit testing of monitor creation/loading ...................................................................... Add unit testing of monitor creation/loading Add a mock monitor to aid unit testing Change-Id: I8e0c21605f7c130426d61ebef72afc1f1a4bc208 --- M pybal/monitors/__init__.py M pybal/test/test_server.py 2 files changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/debs/pybal refs/changes/97/405297/1 diff --git a/pybal/monitors/__init__.py b/pybal/monitors/__init__.py index d0743a7..d64e73e 100644 --- a/pybal/monitors/__init__.py +++ b/pybal/monitors/__init__.py @@ -5,4 +5,4 @@ The monitors package contains all (complete) monitoring implementations of PyBal """ -__all__ = [ 'proxyfetch', 'idleconnection', 'runcommand', 'dnsquery' ] +__all__ = [ 'proxyfetch', 'idleconnection', 'runcommand', 'dnsquery', 'mock' ] diff --git a/pybal/test/test_server.py b/pybal/test/test_server.py index 3d62f83..1df0121 100644 --- a/pybal/test/test_server.py +++ b/pybal/test/test_server.py @@ -13,7 +13,7 @@ import pybal.server from twisted.python import failure -from twisted.internet.reactor import getDelayedCalls +from twisted.internet import reactor from .fixtures import PyBalTestCase, StubLVSService @@ -38,7 +38,7 @@ } def tearDown(self): - for call in getDelayedCalls(): + for call in reactor.getDelayedCalls(): if call.func.func_name == 'maybeParseConfig': call.cancel() @@ -131,7 +131,19 @@ self.config['monitors'] = "[ \"NonexistentMonitor\" ]" self.server.createMonitoringInstances(self.mockCoordinator) - # TODO: test creation of a (mock) monitor + def testCreateMockMonitoringInstance(self): + self.config['monitors'] = "[ \"Mock\" ]" + self.server.createMonitoringInstances(self.mockCoordinator) + self.assertTrue(self.server.monitors) + self.assertTrue(all({m.active for m in self.server.monitors})) + + @mock.patch('twisted.internet.reactor.stop') + @mock.patch('importlib.import_module') + def testCreateFailingMockMonitoringInstance(self, mocked_import_module, mock_reactor): + mocked_import_module.side_effect = RuntimeError("Similating runtime error to aid unit testing") + self.config['monitors'] = "[ \"Mock\" ]" + self.server.createMonitoringInstances(self.mockCoordinator) + self.assertTrue(mock_reactor.assert_called) def testCalcStatus(self): self.mockMonitor.up = True -- To view, visit https://gerrit.wikimedia.org/r/405297 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8e0c21605f7c130426d61ebef72afc1f1a4bc208 Gerrit-PatchSet: 1 Gerrit-Project: operations/debs/pybal Gerrit-Branch: master Gerrit-Owner: Mark Bergsma <m...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits