示例#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_stopService_handles_canceling_startup(self):
     listener = PostgresListenerService()
     service = RackControllerService(sentinel.ipcWorker, listener)
     service.processId = random.randint(0, 100)
     service.starting = Deferred()
     listener.register(f"sys_core_{service.processId}", service.coreHandler)
     yield service.stopService()
     self.assertNotIn(f"sys_core_{service.processId}", listener.listeners)
     self.assertIsNone(service.starting)
示例#4
0
 def test_stopService_calls_unregister_for_the_process(self):
     processId = random.randint(0, 100)
     listener = Mock()
     service = RackControllerService(sentinel.ipcWorker, listener)
     service.processId = processId
     yield service.stopService()
     self.assertThat(
         listener.unregister,
         MockCalledOnceWith("sys_core_%d" % processId, service.coreHandler))
示例#5
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)
示例#6
0
 def test_stopService_handles_canceling_startup(self):
     listener = Mock()
     service = RackControllerService(sentinel.ipcWorker, listener)
     service.processId = random.randint(0, 100)
     service.starting = Deferred()
     yield service.stopService()
     self.assertThat(
         listener.unregister,
         MockCalledOnceWith("sys_core_%d" % service.processId,
                            service.coreHandler))
     self.assertIsNone(service.starting)
示例#7
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)
示例#8
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())
示例#9
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)
示例#10
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())
示例#11
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())
示例#12
0
 def test_stopService_calls_unregister_for_all_watching(self):
     processId = random.randint(0, 100)
     watching = {random.randint(0, 100) for _ in range(3)}
     listener = Mock()
     service = RackControllerService(sentinel.ipcWorker, listener)
     service.processId = processId
     service.watching = watching
     yield service.stopService()
     self.assertThat(
         listener.unregister,
         MockAnyCall("sys_core_%d" % processId, service.coreHandler))
     for watch_id in watching:
         self.assertThat(
             listener.unregister,
             MockAnyCall("sys_dhcp_%d" % watch_id, service.dhcpHandler))
示例#13
0
    def test_stopService_calls_unregister_for_all_watching(self):
        processId = random.randint(0, 100)
        watching = {random.randint(0, 100) for _ in range(3)}
        listener = PostgresListenerService()
        service = RackControllerService(sentinel.ipcWorker, listener)
        service.processId = processId
        service.watching = watching
        listener.register(f"sys_core_{processId}", service.coreHandler)
        for watch_id in watching:
            listener.register(f"sys_dhcp_{watch_id}", service.dhcpHandler)

        yield service.stopService()

        self.assertNotIn(f"sys_core_{processId}", listener.listeners)
        for watch_id in watching:
            self.assertNotIn(f"sys_dhcp_{watch_id}", listener.listeners)