def test_coreHandler_unwatch_doesnt_call_unregister(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = Mock() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId service.coreHandler("sys_core_%d" % processId, "unwatch_%d" % rack_id) self.assertThat(listener.unregister, MockNotCalled())
def test_coreHandler_raises_ValueError_for_unknown_action(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = PostgresListenerService() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId with ExpectedException(ValueError): service.coreHandler("sys_core_%d" % processId, "invalid_%d" % rack_id)
def test_coreHandler_unwatch_doesnt_call_unregister(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = PostgresListenerService() service = RackControllerService(sentinel.ipcWorker, listener) self.assertNotIn(rack_id, service.watching) listener.register(f"sys_dhcp_{rack_id}", service.dhcpHandler) service.processId = processId service.coreHandler("sys_core_%d" % processId, "unwatch_%d" % rack_id) self.assertEqual({f"sys_dhcp_{rack_id}": [service.dhcpHandler]}, listener.listeners)
def test_coreHandler_unwatch_calls_unregister(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = PostgresListenerService() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId service.watching = {rack_id} service.needsDHCPUpdate = {rack_id} listener.register(f"sys_dhcp_{rack_id}", service.dhcpHandler) service.coreHandler("sys_core_%d" % processId, "unwatch_%d" % rack_id) self.assertNotIn(f"sys_dhcp_{rack_id}", listener.listeners) self.assertEquals(set(), service.watching) self.assertEquals(set(), service.needsDHCPUpdate)
def test_coreHandler_watch_doesnt_call_register(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = Mock() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId service.watching = set([rack_id]) mock_startProcessing = self.patch(service, "startProcessing") service.coreHandler("sys_core_%d" % processId, "watch_%d" % rack_id) self.assertThat(listener.register, MockNotCalled()) self.assertEquals(set([rack_id]), service.watching) self.assertEquals(set([rack_id]), service.needsDHCPUpdate) self.assertThat(mock_startProcessing, MockCalledOnceWith())
def test_coreHandler_unwatch_calls_unregister(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = Mock() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId service.watching = {rack_id} service.needsDHCPUpdate = {rack_id} service.coreHandler("sys_core_%d" % processId, "unwatch_%d" % rack_id) self.assertThat( listener.unregister, MockCalledOnceWith("sys_dhcp_%d" % rack_id, service.dhcpHandler)) self.assertEquals(set(), service.watching) self.assertEquals(set(), service.needsDHCPUpdate)
def test_coreHandler_watch_doesnt_call_register(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = PostgresListenerService() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId service.watching = set([rack_id]) mock_startProcessing = self.patch(service, "startProcessing") sys_channel = f"sys_core_{processId}" service.coreHandler(sys_channel, "watch_%d" % rack_id) self.assertNotIn(sys_channel, listener.listeners) self.assertNotIn(sys_channel, listener.registeredChannels) self.assertEquals(set([rack_id]), service.watching) self.assertEquals(set([rack_id]), service.needsDHCPUpdate) self.assertThat(mock_startProcessing, MockCalledOnceWith())
def test_coreHandler_watch_calls_register_and_startProcessing(self): processId = random.randint(0, 100) rack_id = random.randint(0, 100) listener = self.make_listener_without_delay() service = RackControllerService(sentinel.ipcWorker, listener) service.processId = processId mock_startProcessing = self.patch(service, "startProcessing") sys_channel = f"sys_core_{processId}" service.coreHandler(sys_channel, "watch_%d" % rack_id) dhcp_channel = f"sys_dhcp_{rack_id}" self.assertIn(dhcp_channel, listener.listeners) self.assertIn(service.dhcpHandler, listener.listeners[dhcp_channel]) self.assertEqual(set([rack_id]), service.watching) self.assertEqual(set([rack_id]), service.needsDHCPUpdate) self.assertThat(mock_startProcessing, MockCalledOnceWith())