Ema has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/404762 )
Change subject: Expand test coverage of server.py ...................................................................... Expand test coverage of server.py Change-Id: I56c521a1a4f24c73839f76bcf52afb11efa739e1 --- M pybal/test/test_server.py 1 file changed, 52 insertions(+), 4 deletions(-) Approvals: Ema: Looks good to me, approved jenkins-bot: Verified diff --git a/pybal/test/test_server.py b/pybal/test/test_server.py index 01da0d9..e6d6bc1 100644 --- a/pybal/test/test_server.py +++ b/pybal/test/test_server.py @@ -9,12 +9,12 @@ import mock -import pybal.coordinator +import pybal.server from twisted.python import failure from twisted.internet.reactor import getDelayedCalls -from .fixtures import PyBalTestCase +from .fixtures import PyBalTestCase, StubLVSService class ServerTestCase(PyBalTestCase): """Test case for `pybal.server.Server`.""" @@ -23,9 +23,10 @@ super(ServerTestCase, self).setUp() self.server = pybal.server.Server( - 'example.com', mock.MagicMock()) + 'example.com', self.lvsservice) self.mockMonitor = mock.MagicMock() + self.mockCoordinator = mock.MagicMock() self.server.addMonitor(self.mockMonitor) self.exampleConfigDict = { @@ -40,6 +41,26 @@ for call in getDelayedCalls(): if call.func.func_name == 'maybeParseConfig': call.cancel() + + def testEq(self): + self.assertEquals(self.server, self.server) + + # Create a Server instance with different hostname + otherServer = pybal.server.Server('other.example.com', self.lvsservice) + self.assertNotEqual(self.server, otherServer) + + # Create a Server instance with equal hostname but different LVSService + otherLVSService = StubLVSService( + 'otherservice', + (self.protocol, self.ip, self.port, self.scheduler), + self.config) + otherServer = pybal.server.Server('example.com', otherLVSService) + self.assertNotEqual(self.server, otherServer) + + def testHash(self): + # Create a Server instance with different hostname + otherServer = pybal.server.Server('other.example.com', self.lvsservice) + self.assertNotEqual(hash(self.server), hash(otherServer)) def testAddMonitor(self): self.assertIn(self.mockMonitor, self.server.monitors) @@ -68,9 +89,31 @@ self.assertEquals(self.server.ready, result) self.server.createMonitoringInstances = mock.MagicMock() - deferred = self.server.initialize(coordinator=mock.MagicMock()) + deferred = self.server.initialize(self.mockCoordinator) deferred.addCallback(callback) return deferred + + @mock.patch('pybal.server.Server.createMonitoringInstances') + def testReady(self, mock_createMonitoringInstances): + r = self.server._ready(True, self.mockCoordinator) + self.assertTrue(r) + self.assertTrue(self.server.ready) + mock_createMonitoringInstances.assert_called() + + def testInitFailed(self): + r = self.server._initFailed(failure.Failure(Exception("Fake failure"))) + self.assertFalse(r) + self.assertFalse(self.server.ready) + + def testCreateMonitoringInstances(self): + assert 'monitors' not in self.config + self.assertRaises(KeyError, + self.server.createMonitoringInstances, self.mockCoordinator) + + self.config['monitors'] = "[ \"NonexistentMonitor\" ]" + self.server.createMonitoringInstances(self.mockCoordinator) + + # TODO: test creation of a (mock) monitor def testCalcStatus(self): self.mockMonitor.up = True @@ -95,6 +138,11 @@ self.assertFalse(self.server.calcStatus()) self.assertTrue(self.server.calcPartialStatus()) + def testTextStatus(self): + textStatus = self.server.textStatus() + self.assertTrue(isinstance(textStatus, str)) + self.assertEquals(len(textStatus.split('/')), 3) + def testMaintainState(self): self.server.pooled = True self.server.enabled = False -- To view, visit https://gerrit.wikimedia.org/r/404762 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I56c521a1a4f24c73839f76bcf52afb11efa739e1 Gerrit-PatchSet: 1 Gerrit-Project: operations/debs/pybal Gerrit-Branch: master Gerrit-Owner: Mark Bergsma <m...@wikimedia.org> Gerrit-Reviewer: Ema <e...@wikimedia.org> Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: Volans <rcocci...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits