def test_tasks_done_2(self): # Arrange test_client = self.get_test_client() test_client.set_cookie('server', 'id', 'test_session_id') self.master.job.job_id = 1234 tasks: List[Task] = [ Task(1, "", [""], None, "", ""), Task(2, "", [""], None, "", "") ] for task in tasks: task.set_job(1234) task.message_type = TaskMessageType.TASK_PROCESSED self.master.load_tasks(tasks) tasks[0].message_type = TaskMessageType.TASK_PROCESSED tasks[1].message_type = TaskMessageType.TASK_PROCESSED test_client.get(f'/{endpoints.GET_TASKS}/1234/2') pickled_tasks = pickle_dumps(tasks) compressed_data = compress(pickled_tasks) # Act resp: Response = test_client.post(f'/{endpoints.TASKS_DONE}/1234', data=compressed_data) # Assert assert resp.status_code == 200 assert self.master.task_manager.finished_tasks.qsize() == 2 assert self.master.task_manager.finished_tasks.get() == tasks[0]
def test_load_tasks(self): # Arrange self.master.job.job_id = 1234 tasks: List[Task] = [ Task(1, "", [""], None, "", ""), Task(2, "", [""], None, "", ""), Task(3, "", [""], None, "", "") ] available_tasks = self.master.task_manager.available_tasks # Act self.master.load_tasks(tasks) # Assert assert available_tasks.qsize() == len(tasks) while not available_tasks.empty(): assert available_tasks.get() in tasks
def test_get_completed_tasks(self): # Arrange completed_tasks: List[Task] = [ Task(0, "", [""], None, "", ""), Task(1, "", [""], None, "", "") ] self.master.task_manager.add_new_available_tasks(completed_tasks, 1234) for task in completed_tasks: task.message_type = TaskMessageType.TASK_PROCESSED self.master.task_manager.connect_available_tasks( len(completed_tasks), "") self.master.task_manager.tasks_finished(completed_tasks) # Act returned_tasks = self.master.get_completed_tasks() # Assert assert returned_tasks == completed_tasks
def test_get_tasks_compression_error(self, mock_compress): # Arrange test_client = self.get_test_client() test_client.set_cookie('server', 'id', 'test_session_id') self.master.job.job_id = 1234 tasks: List[Task] = [ Task(1, "", [""], None, "", ""), Task(2, "", [""], None, "", ""), Task(3, "", [""], None, "", "") ] self.master.task_manager.add_new_available_tasks(tasks, 1234) mock_compress.side_effect = CompressionException # Act resp: Response = test_client.get(f'/{endpoints.GET_TASKS}/1234/2') # Assert assert resp.status_code == 500
def test_get_tasks_uninitialized_job_error(self): # Arrange test_client = self.get_test_client() test_client.set_cookie('server', 'id', 'test_session_id') task: Task = Task(1, "", [""], None, "", "") self.master.task_manager.add_new_available_task(task, 1234) # Act resp: Response = test_client.get(f'/{endpoints.GET_TASKS}/1234/2') # Assert assert resp.status_code == 403
def test_get_tasks(self): # Arrange test_client = self.get_test_client() test_client.set_cookie('server', 'id', 'test_session_id') self.master.job.job_id = 1234 tasks: List[Task] = [ Task(1, "", [""], None, "", ""), Task(2, "", [""], None, "", ""), Task(3, "", [""], None, "", "") ] for task in tasks: task.set_job(1234) self.master.task_manager.add_new_available_tasks(tasks, 1234) # Act resp: Response = test_client.get(f'/{endpoints.GET_TASKS}/1234/2') # Assert actual_data: List[Task] = pickle_loads(decompress(resp.data)) assert len(actual_data) == 2 assert actual_data == tasks[0:2]
def test_get_tasks_job_done(self): # Arrange test_client = self.get_test_client() test_client.set_cookie('server', 'id', 'test_session_id') self.master.job.job_id = 1234 tasks: List[Task] = [ Task(1, "", [""], None, "", ""), Task(2, "", [""], None, "", ""), Task(3, "", [""], None, "", "") ] self.master.task_manager.add_new_available_tasks(tasks, 1234) for task in tasks: task.message_type = TaskMessageType.TASK_PROCESSED self.master.task_manager.connect_available_tasks(len(tasks), "") self.master.task_manager.tasks_finished(tasks) # Act resp: Response = test_client.get(f'/{endpoints.GET_TASKS}/1234/2') # Assert actual_data: List[Task] = pickle_loads(decompress(resp.data)) assert len(actual_data) == 1 assert actual_data[0].message_type == TaskMessageType.JOB_END
def test_tasks_done(self): # Arrange test_client = self.get_test_client() test_client.set_cookie('server', 'id', 'test_session_id') self.master.job.job_id = 1234 task: Task = Task(1, "", [""], None, "", "") task.set_job(1234) self.master.load_tasks([task]) task.message_type = TaskMessageType.TASK_PROCESSED resp1: Response = test_client.get(f'/{endpoints.GET_TASKS}/1234/2') data = resp1.data # Act resp2: Response = test_client.post(f'/{endpoints.TASKS_DONE}/1234', data=data) # Assert assert resp2.status_code == 200 assert self.master.task_manager.finished_tasks.qsize() == 1 assert self.master.task_manager.finished_tasks.get() == task