예제 #1
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)
예제 #2
0
    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)
예제 #3
0
파일: resources.py 프로젝트: josephkirk/zou
 def get(self, project_id):
     (only_preview, task_type_id, task_status_id, person_id, page,
      page_size, after, before) = self.get_arguments()
     projects_service.get_project(project_id)
     user_service.check_project_access(project_id)
     user_service.block_access_to_vendor()
     after = self.parse_date_parameter(after)
     before = self.parse_date_parameter(before)
     result = news_service.get_last_news_for_project(
         project_id,
         only_preview=only_preview,
         task_type_id=task_type_id,
         task_status_id=task_status_id,
         author_id=person_id,
         page=page,
         page_size=page_size,
         after=after,
         before=before,
     )
     stats = news_service.get_news_stats_for_project(
         project_id,
         task_type_id=task_type_id,
         task_status_id=task_status_id,
         author_id=person_id,
         after=after,
         before=before,
     )
     result["stats"] = stats
     return result
예제 #4
0
파일: resources.py 프로젝트: Arubinu/zou
 def get(self, project_id):
     (only_preview, task_type_id, task_status_id, page,
      page_size) = self.get_arguments()
     projects_service.get_project(project_id)
     user_service.check_project_access(project_id)
     return news_service.get_last_news_for_project(
         project_id,
         only_preview=only_preview,
         task_type_id=task_type_id,
         task_status_id=task_status_id,
         page=page,
         page_size=page_size)
예제 #5
0
    def test_comment_task(self):
        self.project_id = self.project.id
        self.generate_fixture_user_manager()
        self.generate_fixture_user_cg_artist()
        user_cg_artist = persons_service.get_person_raw(
            self.user_cg_artist["id"]
        )
        user_manager = persons_service.get_person_raw(self.user_manager["id"])
        self.project.team = [self.person, user_cg_artist, user_manager]
        self.project.save()
        self.generate_fixture_task()
        path = "/actions/tasks/%s/comment/" % self.task.id
        data = {
            "task_status_id": self.wip_status_id,
            "comment": "comment test",
        }
        comment = self.post(path, data)
        self.assertEqual(comment["text"], data["comment"])
        self.assertEqual(
            comment["person"]["first_name"], self.user["first_name"]
        )
        self.assertEqual(comment["task_status"]["short_name"], "wip")

        tasks = self.get("/data/tasks")
        self.assertEqual(len(tasks), 1)
        self.assertEqual(tasks[0]["task_status_id"], str(self.wip_status_id))
        self.assertIsNotNone(tasks[0]["last_comment_date"])

        comments = self.get("/data/comments/")
        self.assertEqual(len(comments), 1)
        self.assertEqual(comments[0]["text"], data["comment"])
        self.assertEqual(comments[0]["person_id"], self.user["id"])

        notifications = notifications_service.get_last_notifications("comment")
        self.assertEqual(len(notifications), 1)
        notifications = notifications_service.get_last_notifications("mention")
        self.assertEqual(len(notifications), 0)

        data = {
            "task_status_id": self.wip_status_id,
            "comment": "comment test @John Did2",
        }
        comment = self.post(path, data)
        notifications = notifications_service.get_last_notifications("comment")
        self.assertEqual(len(notifications), 2)
        notifications = notifications_service.get_last_notifications("mention")
        self.assertEqual(len(notifications), 1)

        news_list = news_service.get_last_news_for_project(self.project_id)
        self.assertEqual(len(news_list["data"]), 2)
예제 #6
0
 def get(self, project_id):
     (
         only_preview,
         task_type_id,
         task_status_id,
         person_id,
         page,
         page_size,
     ) = self.get_arguments()
     projects_service.get_project(project_id)
     user_service.check_project_access(project_id)
     user_service.block_access_to_vendor()
     return news_service.get_last_news_for_project(
         project_id,
         only_preview=only_preview,
         task_type_id=task_type_id,
         task_status_id=task_status_id,
         author_id=person_id,
         page=page,
         page_size=page_size,
     )
예제 #7
0
파일: resources.py 프로젝트: Arubinu/zou
 def get(self, project_id, news_id):
     projects_service.get_project(project_id)
     user_service.check_project_access(project_id)
     return news_service.get_last_news_for_project(project_id,
                                                   news_id=news_id)