def test_task_result_connection_failure(self): """Tests what happens after connection failure when sending task_result""" ccd = self._get_config_desc() ts = TaskServer(Node(), ccd, Mock(), self.client, use_docker_machine_manager=False) ts.network = MagicMock() ts.final_conn_failure = Mock() ts.task_computer = Mock() # Always fail on listening ts.network.listen = MagicMock( side_effect=lambda listen_info, waiting_task_result: TCPNetwork.__call_failure_callback( listen_info.failure_callback, {'waiting_task_result': waiting_task_result} ) ) # Try sending mocked task_result wtr = MagicMock() wtr.owner_key_id = 'owner_key_id' kwargs = {'waiting_task_result': wtr} ts._add_pending_request(TASK_CONN_TYPES['task_result'], 'owner_id', 'owner_port', wtr.owner_key_id, kwargs) ts._sync_pending() ts.client.want_to_start_task_session.assert_called_once_with( wtr.owner_key_id, ts.node, ANY, # conn_id )
def test_conn_final_failures(self): ccd = self._get_config_desc() ts = TaskServer(Node(), ccd, Mock(), self.client, use_docker_machine_manager=False) self.ts = ts ts.network = Mock() ts.final_conn_failure = Mock() ts.task_computer = Mock() method = ts._TaskServer__connection_for_resource_request_final_failure method('conn_id', 'key_id', 'subtask_id', Mock()) ts.task_computer.resource_request_rejected.assert_called_once_with('subtask_id', ANY) ts.remove_pending_conn = Mock() ts.remove_responses = Mock() method = ts._TaskServer__connection_for_result_rejected_final_failure method('conn_id', 'key_id', 'subtask_id') self.assertTrue(ts.remove_pending_conn.called) self.assertTrue(ts.remove_responses.called_) ts.remove_pending_conn.called = False ts.remove_responses.called = False method = ts._TaskServer__connection_for_task_result_final_failure wtr = Mock() method('conn_id', 'key_id', wtr) self.assertTrue(ts.remove_pending_conn.called) self.assertTrue(ts.remove_responses.called) self.assertFalse(wtr.alreadySending) self.assertTrue(wtr.lastSendingTrial) ts.remove_pending_conn.called = False ts.remove_responses.called = False method = ts._TaskServer__connection_for_task_failure_final_failure method('conn_id', 'key_id', 'subtask_id', 'err_msg') self.assertTrue(ts.remove_pending_conn.called) self.assertTrue(ts.remove_responses.called) self.assertTrue(ts.task_computer.session_timeout.called) ts.remove_pending_conn.called = False ts.remove_responses.called = False ts.task_computer.session_timeout.called = False method = ts._TaskServer__connection_for_start_session_final_failure method('conn_id', 'key_id', Mock(), Mock(), 'ans_conn_id') self.assertTrue(ts.remove_pending_conn.called) self.assertTrue(ts.remove_responses.called) self.assertTrue(ts.task_computer.session_timeout.called)
def test_conn_for_start_session_failure(self): ccd = self._get_config_desc() ts = TaskServer(Node(), ccd, Mock(), self.client, use_docker_machine_manager=False) self.ts = ts ts.network = Mock() ts.final_conn_failure = Mock() method = ts._TaskServer__connection_for_start_session_failure method('conn_id', 'key_id', Mock(), Mock(), 'ans_conn_id') ts.final_conn_failure.assert_called_with('conn_id')