def test_get_tasks_for_person(self): projects = [self.project.serialize()] tasks = tasks_service.get_person_tasks(self.user["id"], projects) self.assertEqual(len(tasks), 0) tasks_service.assign_task(self.task.id, self.user["id"]) tasks = tasks_service.get_person_tasks(self.user["id"], projects) self.assertEqual(len(tasks), 1) comments_service.new_comment( self.task.id, self.task_status.id, self.person.id, "first comment" ) comments_service.new_comment( self.task.id, self.task_status.id, self.person.id, "last comment" ) tasks = tasks_service.get_person_tasks(self.person.id, projects) self.assertEqual(len(tasks), 2) self.assertEqual(tasks[1]["last_comment"]["text"], "last comment") self.assertEqual( tasks[1]["last_comment"]["person_id"], str(self.person.id) )
def test_remove_task_force(self): comments_service.new_comment(self.task.id, self.task_status.id, self.person.id, "first comment") TimeSpent.create(person_id=self.person.id, task_id=self.task.id, date=datetime.date(2017, 9, 23), duration=3600) deletion_service.remove_task(self.task_id, force=True) self.assertRaises(TaskNotFoundException, tasks_service.get_task, self.task_id)
def test_get_last_news_for_project(self): self.generate_fixture_comment() for i in range(1, 81): comment = comments_service.new_comment( self.task.id, self.task_status.id, self.user["id"], "comment %s" % i, ) news = news_service.create_news_for_task_and_comment( self.task_dict, comment) news_list = self.get("/data/projects/%s/news" % self.task_dict["project_id"]) self.assertEqual(len(news_list["data"]), 50) news = news_list["data"][0] self.assertEqual(news["project_name"], "Cosmos Landromat") self.assertEqual(news["full_entity_name"], "E01 / S01 / P01") self.assertEqual(news["project_id"], self.task_dict["project_id"]) news_list = self.get("/data/projects/%s/news?page=2" % self.task_dict["project_id"]) self.assertEqual(len(news_list["data"]), 30) news = self.get("/data/projects/%s/news/%s" % (self.task_dict["project_id"], news["id"])) self.assertIsNotNone(news["created_at"])
def test_get_last_news_for_project(self): self.generate_fixture_comment() for i in range(1, 81): comment = comments_service.new_comment( self.task.id, self.task_status.id, self.user["id"], "comment %s" % i ) news = news_service.create_news_for_task_and_comment( self.task_dict, comment ) news_list = news_service.get_last_news_for_project( self.task_dict["project_id"] ) self.assertEqual(len(news_list), 50) news = news_list[0] self.assertEqual(news["project_name"], "Cosmos Landromat") self.assertEqual(news["full_entity_name"], "E01 / S01 / P01") self.assertEqual(news["project_id"], self.task_dict["project_id"]) news_list = news_service.get_last_news_for_project( self.task_dict["project_id"], page=2 ) self.assertEqual(len(news_list), 30) news_list = news_service.get_last_news_for_project( self.task_dict["project_id"], news_id=news["id"] ) self.assertEqual(len(news_list), 1)
def test_get_tasks_for_person(self): self.generate_fixture_task() comments_service.new_comment(self.task.id, self.task_status.id, self.person.id, "first comment") comments_service.new_comment(self.task.id, self.task_status.id, self.person.id, "last comment") tasks = self.get("/data/persons/%s/tasks" % self.person.id) self.assertEqual(len(tasks), 1) self.assertEqual(tasks[0]["last_comment"]["text"], "last comment") self.assertEqual(tasks[0]["last_comment"]["person_id"], str(self.person.id)) self.assertEqual(len(tasks), 1) self.assertTrue(str(self.person.id) in tasks[0]["assignees"]) tasks = self.get("/data/persons/%s/tasks" % self.user["id"]) self.assertEqual(len(tasks), 0)
def test_get_last_news_for_project_with_dates(self): self.generate_fixture_comment() for i in range(1, 7): comment = comments_service.new_comment( self.task.id, self.task_status.id, self.user["id"], "comment %s" % i, ) news_service.create_news_for_task_and_comment( self.task_dict, comment, created_at=datetime.now() - timedelta(days=i), ) news_list = news_service.get_last_news_for_project( self.task_dict["project_id"] ) self.assertEqual(len(news_list["data"]), 6) date = (datetime.now() - timedelta(days=2)).strftime("%Y-%m-%d") news_list = news_service.get_last_news_for_project( self.task_dict["project_id"], after=date ) self.assertEqual(len(news_list["data"]), 2) news_list = news_service.get_last_news_for_project( self.task_dict["project_id"], before=date ) self.assertEqual(len(news_list["data"]), 4)
def test_new_comment(self): comment = comments_service.new_comment( self.task_id, self.task_status.id, self.person.id, "Test @John Doe" ) self.assertEqual(comment["mentions"][0], str(self.person.id))
def generate_fixture_comment( self, person=None, task_id=None, task_status_id=None ): if person is None: person = self.person.serialize() if task_id is None: task_id = self.task.id if task_status_id is None: task_status_id = self.task_status.id self.comment = comments_service.new_comment( task_id, task_status_id, person["id"], "first comment" ) return self.comment
def generate_fixture_comment(self): self.generate_fixture_person() self.generate_fixture_assigner() self.generate_fixture_department() self.generate_fixture_task_type() self.task_type_dict = self.task_type_animation.serialize() self.generate_fixture_task_status() self.task = self.generate_fixture_shot_task() self.task_dict = self.task.serialize() self.person_dict = self.generate_fixture_person( first_name="Jane", email="*****@*****.**").serialize() self.comment = comments_service.new_comment(self.task.id, self.task_status.id, self.user["id"], "first comment")