示例#1
0
 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]
示例#2
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
示例#3
0
 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
示例#4
0
 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
示例#5
0
 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
示例#6
0
 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]
示例#7
0
 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
示例#8
0
 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