예제 #1
0
 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())
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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())
예제 #6
0
 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)
예제 #7
0
 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())
예제 #8
0
 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())