コード例 #1
0
 def test_review_knows_it_it_is_trusted_or_not(self):
     trusted = factories.RecruitProjectReviewFactory(
         reviewer_user=self.trusted_user, )
     untrusted = factories.RecruitProjectReviewFactory(
         reviewer_user=self.untrusted_user, )
     self.assertTrue(trusted.trusted)
     self.assertFalse(untrusted.trusted)
コード例 #2
0
 def test_review_knows_it_it_is_trusted_or_not_using_trust_obj(self):
     trusted = factories.RecruitProjectReviewFactory(
         reviewer_user=self.trusted_user,
         recruit_project=self.ip_card.recruit_project,
     )
     untrusted = factories.RecruitProjectReviewFactory(
         reviewer_user=self.untrusted_user,
         recruit_project=self.ip_card.recruit_project,
     )
     self.assertTrue(trusted.trusted)
     self.assertFalse(untrusted.trusted)
コード例 #3
0
    def test_review_failed_then_rerequested_flow(self):
        card = self.ip_card
        untrusted_user = core_factories.UserFactory(
            is_staff=False
        )  # TODO: trust different people for diferent reasons
        trusted_user = core_factories.UserFactory(
            is_staff=True
        )  # TODO: trust different people for diferent reasons

        project = card.recruit_project

        project.start_time = timezone.now() - timedelta(days=15)
        project.request_review()

        card.refresh_from_db()
        project.refresh_from_db()
        self.assertEqual(card.status, models.AgileCard.IN_REVIEW)

        # add NCY review
        factories.RecruitProjectReviewFactory(
            recruit_project=project,
            reviewer_user=untrusted_user,
            status=NOT_YET_COMPETENT,
        )

        card.refresh_from_db()
        project.refresh_from_db()
        self.assertEqual(card.status, models.AgileCard.REVIEW_FEEDBACK)

        # the recruit asks for another review...
        project.request_review()

        card.refresh_from_db()
        project.refresh_from_db()
        self.assertEqual(card.status, models.AgileCard.IN_REVIEW)

        # a staff member add a review
        factories.RecruitProjectReviewFactory(
            recruit_project=project,
            reviewer_user=trusted_user,
            status=NOT_YET_COMPETENT,
        )

        card.refresh_from_db()
        project.refresh_from_db()
        self.assertEqual(card.status, models.AgileCard.REVIEW_FEEDBACK)

        # the recruit asks for another review...
        project.request_review()

        card.refresh_from_db()
        project.refresh_from_db()
        self.assertEqual(card.status, models.AgileCard.IN_REVIEW)
コード例 #4
0
    def test_no_flavours(self):

        content_item = factories.ProjectContentItemFactory()

        card = factories.AgileCardFactory(
            content_item=content_item, recruit_project=None
        )
        user = card.assignees.first()

        self.assertIsNone(card.recruit_project)
        assert user is not None
        update_project_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, card.READY)

        progress = factories.RecruitProjectFactory(
            content_item=content_item,
            review_request_time=timezone.now() - timezone.timedelta(days=1),
            start_time=timezone.now() - timezone.timedelta(days=2),
        )
        progress.recruit_users.add(user)

        factories.RecruitProjectReviewFactory(
            recruit_project=progress,
            status=NOT_YET_COMPETENT,
            timestamp=timezone.now(),
        )

        update_project_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, models.AgileCard.REVIEW_FEEDBACK)
コード例 #5
0
    def test_adding_trusted_competent_moves_card_to_complete(self):
        for card in self.cards:
            card.refresh_from_db()

            project = card.recruit_project

            review = factories.RecruitProjectReviewFactory(
                recruit_project=project,
                reviewer_user=self.trusted_user,
                status=COMPETENT,
            )
            self.assertIsNotNone(review.timestamp)
            self.assertEqual(review.trusted, True)

            # for card in self.cards:
            card.refresh_from_db()
            project.refresh_from_db()

            project = models.RecruitProject.objects.get(pk=project.id)
            # project = card.recruit_project
            # print("AFTER SIGNAL")

            # print(f"card.id:   {card.id}")
            # print(f"card.status:   {card.status}")
            # print(f"project:   {project}")
            # print(f"project.id: {project.id}")
            # print(f"project.complete_time:{project.complete_time}")

            self.assertEqual(card.status, models.AgileCard.COMPLETE)
            self.assertIsNotNone(project.complete_time)
コード例 #6
0
    def test_that_user_given_permission_trusted_reviewer_makes_trusted_review(
            self):
        user = core_factories.UserFactory()

        recruit_team = core_factories.TeamFactory()
        assign_perm(Team.PERMISSION_TRUSTED_REVIEWER, user, recruit_team)

        untrusted = factories.RecruitProjectReviewFactory(
            reviewer_user=user, recruit_project=self.ip_card.recruit_project)
        self.assertFalse(untrusted.trusted)

        # now add the recruit to the team and make another review

        recruit_team.user_set.set(
            self.ip_card.recruit_project.recruit_users.all())

        trusted = factories.RecruitProjectReviewFactory(
            reviewer_user=user, recruit_project=self.ip_card.recruit_project)
        self.assertTrue(trusted.trusted)
        self.assertFalse(untrusted.trusted)
コード例 #7
0
    def test_adding_nyc_untrusted_moves_card_to_review_feedback(self):
        for card in self.cards:
            project = card.recruit_project
            factories.RecruitProjectReviewFactory(
                recruit_project=project,
                reviewer_user=self.untrusted_user,
                status=NOT_YET_COMPETENT,
            )

        for card in self.cards:
            card.refresh_from_db()
            self.assertEqual(card.status, models.AgileCard.REVIEW_FEEDBACK)
コード例 #8
0
    def test_adding_trusted_competent_moves_card_to_complete(self):

        for card in self.cards:
            project = card.recruit_project
            factories.RecruitProjectReviewFactory(
                recruit_project=project,
                reviewer_user=self.trusted_user,
                status=COMPETENT,
            )

        for card in self.cards:
            card.refresh_from_db()
            self.assertEqual(card.status, models.AgileCard.COMPLETE)
コード例 #9
0
    def test_adding_untrusted_competent_does_not_move_card(self):
        for card in self.cards:
            project = card.recruit_project
            factories.RecruitProjectReviewFactory(
                recruit_project=project,
                reviewer_user=self.untrusted_user,
                status=COMPETENT,
            )

        for card in self.cards:
            card.refresh_from_db()

        # nothing moved
        self.assertEqual(self.ready_card.status, models.AgileCard.READY)
        self.assertEqual(self.ip_card.status, models.AgileCard.IN_PROGRESS)
        self.assertEqual(self.feedback_card.status, models.AgileCard.REVIEW_FEEDBACK)
コード例 #10
0
 def test_that_superuser_always_trusted(self):
     superuser = core_factories.UserFactory(is_superuser=True)
     review = factories.RecruitProjectReviewFactory(
         reviewer_user=superuser,
         recruit_project=self.ip_card.recruit_project)
     self.assertTrue(review.trusted)