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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits