def test_process_calls_processDHCP_for_rack_controller(self): rack_id = random.randint(0, 100) service = RackControllerService(sentinel.ipcWorker, sentinel.listener) service.watching = set([rack_id]) service.needsDHCPUpdate = set([rack_id]) service.running = True mock_processDHCP = self.patch(service, "processDHCP") service.startProcessing() yield service.processingDone self.assertThat(mock_processDHCP, MockCalledOnceWith(rack_id))
def test_process_doesnt_call_processDHCP_when_nothing_to_process(self): rack_id = random.randint(0, 100) service = RackControllerService(sentinel.ipcWorker, sentinel.listener) service.watching = set([rack_id]) service.needsDHCPUpdate = set() service.running = True mock_processDHCP = self.patch(service, "processDHCP") service.startProcessing() yield service.processingDone self.assertThat(mock_processDHCP, MockNotCalled())
def test_process_calls_processDHCP_multiple_times(self): rack_ids = [random.randint(0, 100) for _ in range(3)] service = RackControllerService(sentinel.ipcWorker, sentinel.listener) service.watching = set(rack_ids) service.needsDHCPUpdate = set(rack_ids) service.running = True mock_processDHCP = self.patch(service, "processDHCP") service.startProcessing() for _ in range(len(rack_ids)): yield service.processingDone for rack_id in rack_ids: self.assertThat(mock_processDHCP, MockAnyCall(rack_id))
def test_process_calls_processDHCP_multiple_times_on_failure(self): rack_id = random.randint(0, 100) service = RackControllerService(sentinel.ipcWorker, sentinel.listener) service.watching = set([rack_id]) service.needsDHCPUpdate = set([rack_id]) service.running = True mock_processDHCP = self.patch(service, "processDHCP") mock_processDHCP.side_effect = [ fail(factory.make_exception()), succeed(None), ] service.startProcessing() for _ in range(2): yield service.processingDone self.assertThat(mock_processDHCP, MockCallsMatch(call(rack_id), call(rack_id)))
def test_startProcessing_calls_start_when_looping_call_not_running(self): service = RackControllerService(sentinel.ipcWorker, sentinel.listener) mock_start = self.patch(service.processing, "start") service.startProcessing() self.assertThat(mock_start, MockCalledOnceWith(0.1, now=False))
def test_startProcessing_doesnt_call_start_when_looping_call_running(self): service = RackControllerService(sentinel.ipcWorker, sentinel.listener) mock_start = self.patch(service.processing, "start") service.processing.running = True service.startProcessing() self.assertThat(mock_start, MockNotCalled())