Esempio n. 1
0
    def test_status_blocked_bad_review_nothing(self):
        challenge1 = self.challenge
        self.create_challenge()
        challenge2 = self.challenge
        challenge2.prerequisite = challenge1
        challenge2.save()
        self.create_challenge()
        challenge3 = self.challenge
        challenge3.prerequisite = challenge2
        challenge3.save()
        user1 = self.users[0]
        user2 = self.users[1]
        user3 = self.users[2]
        user4 = self.users[3]
        elaboration1 = Elaboration(challenge=challenge1, user=user1, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration1.save()
        elaboration2 = Elaboration(challenge=challenge1, user=user2, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration2.save()
        elaboration3 = Elaboration(challenge=challenge1, user=user3, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration3.save()
        elaboration4 = Elaboration(challenge=challenge1, user=user4, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration4.save()
        assert not challenge2.is_enabled_for_user(user1)
        assert challenge1.get_status(user1) == Challenge.USER_REVIEW_MISSING
        assert challenge2.get_status(user1) == Challenge.NOT_ENABLED
        bad_review = Review(elaboration=elaboration1, submission_time=datetime.now(), reviewer=user2,
                            appraisal=Review.NOTHING)
        bad_review.save()
        assert not challenge2.is_enabled_for_user(user1)
        assert challenge1.get_status(user1) == Challenge.BLOCKED_BAD_REVIEW
        assert challenge2.get_status(user1) == Challenge.NOT_ENABLED
        bad_review.appraisal = Review.SUCCESS
        bad_review.save()
        Review(elaboration=elaboration2, submission_time=datetime.now(), reviewer=user1,
               appraisal=Review.SUCCESS).save()
        Review(elaboration=elaboration3, submission_time=datetime.now(), reviewer=user1,
               appraisal=Review.SUCCESS).save()
        Review(elaboration=elaboration4, submission_time=datetime.now(), reviewer=user1,
               appraisal=Review.SUCCESS).save()
        assert challenge1.has_enough_user_reviews(user1)
        assert challenge1.get_status(user1) == Challenge.DONE_MISSING_PEER_REVIEW

        assert challenge2.is_enabled_for_user(user1)
        assert challenge2.get_status(user1) == Challenge.NOT_STARTED
        bad_review.appraisal = Review.NOTHING
        bad_review.save()
        assert challenge2.is_enabled_for_user(user1)
        assert challenge2.get_status(user1) == Challenge.NOT_STARTED
Esempio n. 2
0
    def test_status_blocked_bad_review_nothing(self):
        challenge1 = self.challenge
        self.create_challenge()
        challenge2 = self.challenge
        challenge2.prerequisite = challenge1
        challenge2.save()
        self.create_challenge()
        challenge3 = self.challenge
        challenge3.prerequisite = challenge2
        challenge3.save()
        user1 = self.users[0]
        user2 = self.users[1]
        user3 = self.users[2]
        user4 = self.users[3]
        elaboration1 = Elaboration(challenge=challenge1,
                                   user=user1,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration1.save()
        elaboration2 = Elaboration(challenge=challenge1,
                                   user=user2,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration2.save()
        elaboration3 = Elaboration(challenge=challenge1,
                                   user=user3,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration3.save()
        elaboration4 = Elaboration(challenge=challenge1,
                                   user=user4,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration4.save()
        assert not challenge2.is_enabled_for_user(user1)
        assert challenge1.get_status(user1) == Challenge.USER_REVIEW_MISSING
        assert challenge2.get_status(user1) == Challenge.NOT_ENABLED
        bad_review = Review(elaboration=elaboration1,
                            submission_time=datetime.now(),
                            reviewer=user2,
                            appraisal=Review.NOTHING)
        bad_review.save()
        assert not challenge2.is_enabled_for_user(user1)
        assert challenge1.get_status(user1) == Challenge.BLOCKED_BAD_REVIEW
        assert challenge2.get_status(user1) == Challenge.NOT_ENABLED
        bad_review.appraisal = Review.SUCCESS
        bad_review.save()
        Review(elaboration=elaboration2,
               submission_time=datetime.now(),
               reviewer=user1,
               appraisal=Review.SUCCESS).save()
        Review(elaboration=elaboration3,
               submission_time=datetime.now(),
               reviewer=user1,
               appraisal=Review.SUCCESS).save()
        Review(elaboration=elaboration4,
               submission_time=datetime.now(),
               reviewer=user1,
               appraisal=Review.SUCCESS).save()
        assert challenge1.has_enough_user_reviews(user1)
        assert challenge1.get_status(
            user1) == Challenge.DONE_MISSING_PEER_REVIEW

        assert challenge2.is_enabled_for_user(user1)
        assert challenge2.get_status(user1) == Challenge.NOT_STARTED
        bad_review.appraisal = Review.NOTHING
        bad_review.save()
        assert challenge2.is_enabled_for_user(user1)
        assert challenge2.get_status(user1) == Challenge.NOT_STARTED
Esempio n. 3
0
    def test_is_blocked(self):
        challenge1 = self.challenge
        self.create_challenge()
        challenge2 = self.challenge
        challenge2.prerequisite = challenge1
        challenge2.save()
        self.create_challenge()
        challenge3 = self.challenge
        challenge3.prerequisite = challenge2
        challenge3.save()
        user1 = self.users[0]
        user2 = self.users[1]
        user3 = self.users[2]
        user4 = self.users[3]
        elaboration1 = Elaboration(challenge=challenge1,
                                   user=user1,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration1.save()
        elaboration2 = Elaboration(challenge=challenge1,
                                   user=user2,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration2.save()
        elaboration3 = Elaboration(challenge=challenge1,
                                   user=user3,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration3.save()
        elaboration4 = Elaboration(challenge=challenge1,
                                   user=user4,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration4.save()

        assert not self.stack.is_blocked(user2)
        review = Review(elaboration=elaboration2,
                        submission_time=datetime.now(),
                        reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user2)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user2)

        assert not self.stack.is_blocked(user3)
        review = Review(elaboration=elaboration3,
                        submission_time=datetime.now(),
                        reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user3)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user3)

        assert not self.stack.is_blocked(user4)
        review = Review(elaboration=elaboration4,
                        submission_time=datetime.now(),
                        reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user4)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user4)

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration1,
                        submission_time=datetime.now(),
                        reviewer=user2,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration1,
                        submission_time=datetime.now(),
                        reviewer=user3,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user1)

        elaboration5 = Elaboration(challenge=challenge2,
                                   user=user1,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration5.save()
        elaboration6 = Elaboration(challenge=challenge2,
                                   user=user2,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration6.save()
        elaboration7 = Elaboration(challenge=challenge2,
                                   user=user3,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration7.save()
        elaboration8 = Elaboration(challenge=challenge2,
                                   user=user4,
                                   elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration8.save()

        assert not self.stack.is_blocked(user2)
        review = Review(elaboration=elaboration6,
                        submission_time=datetime.now(),
                        reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user2)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user2)

        assert not self.stack.is_blocked(user3)
        review = Review(elaboration=elaboration7,
                        submission_time=datetime.now(),
                        reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user3)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user3)

        assert not self.stack.is_blocked(user4)
        review = Review(elaboration=elaboration8,
                        submission_time=datetime.now(),
                        reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user4)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user4)

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration5,
                        submission_time=datetime.now(),
                        reviewer=user2,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration5,
                        submission_time=datetime.now(),
                        reviewer=user3,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user1)
Esempio n. 4
0
    def test_is_blocked(self):
        challenge1 = self.challenge
        self.create_challenge()
        challenge2 = self.challenge
        challenge2.prerequisite = challenge1
        challenge2.save()
        self.create_challenge()
        challenge3 = self.challenge
        challenge3.prerequisite = challenge2
        challenge3.save()
        user1 = self.users[0]
        user2 = self.users[1]
        user3 = self.users[2]
        user4 = self.users[3]
        elaboration1 = Elaboration(challenge=challenge1, user=user1, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration1.save()
        elaboration2 = Elaboration(challenge=challenge1, user=user2, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration2.save()
        elaboration3 = Elaboration(challenge=challenge1, user=user3, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration3.save()
        elaboration4 = Elaboration(challenge=challenge1, user=user4, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration4.save()

        assert not self.stack.is_blocked(user2)
        review = Review(elaboration=elaboration2, submission_time=datetime.now(), reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user2)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user2)

        assert not self.stack.is_blocked(user3)
        review = Review(elaboration=elaboration3, submission_time=datetime.now(), reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user3)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user3)

        assert not self.stack.is_blocked(user4)
        review = Review(elaboration=elaboration4, submission_time=datetime.now(), reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user4)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user4)

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration1, submission_time=datetime.now(), reviewer=user2,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration1, submission_time=datetime.now(), reviewer=user3,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user1)

        elaboration5 = Elaboration(challenge=challenge2, user=user1, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration5.save()
        elaboration6 = Elaboration(challenge=challenge2, user=user2, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration6.save()
        elaboration7 = Elaboration(challenge=challenge2, user=user3, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration7.save()
        elaboration8 = Elaboration(challenge=challenge2, user=user4, elaboration_text="test",
                                   submission_time=datetime.now())
        elaboration8.save()

        assert not self.stack.is_blocked(user2)
        review = Review(elaboration=elaboration6, submission_time=datetime.now(), reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user2)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user2)

        assert not self.stack.is_blocked(user3)
        review = Review(elaboration=elaboration7, submission_time=datetime.now(), reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user3)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user3)

        assert not self.stack.is_blocked(user4)
        review = Review(elaboration=elaboration8, submission_time=datetime.now(), reviewer=user1,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user4)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user4)

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration5, submission_time=datetime.now(), reviewer=user2,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()

        assert not self.stack.is_blocked(user1)
        review = Review(elaboration=elaboration5, submission_time=datetime.now(), reviewer=user3,
                        appraisal=Review.NOTHING)
        review.save()
        assert self.stack.is_blocked(user1)
        review.appraisal = Review.SUCCESS
        review.save()
        assert not self.stack.is_blocked(user1)