Ejemplo n.º 1
0
    def test_upcoming_reviews_no_longer_wrap_around(self):
        self.client.force_login(self.user)
        # We place nothing in the upcoming hour, ergo
        for i in range(1, 26):
            for j in range(0, i):
                create_review_for_specific_time(
                    self.user, "review_{}".format(i),
                    (timezone.now() + timedelta(hours=i)).replace(minute=0))

        response = self.client.get(reverse("api:user-me"))
        data = response.data
        upcoming_reviews = data['profile']['upcoming_reviews']
        self.assertEqual(upcoming_reviews[0], 0)
        self.assertEqual(upcoming_reviews[23], 23)
Ejemplo n.º 2
0
    def test_upcoming_reviews_no_longer_wrap_around(self):
        self.client.force_login(self.user)
        # We place nothing in the upcoming hour, ergo
        for i in range(1, 26):
            for j in range(0, i):
                create_review_for_specific_time(
                    self.user,
                    "review_{}".format(i),
                    (timezone.now() + timedelta(hours=i)).replace(minute=0),
                )

        response = self.client.get(reverse("api:user-me"))
        data = response.data
        upcoming_reviews = data["profile"]["upcoming_reviews"]
        self.assertEqual(upcoming_reviews[0], 0)
        self.assertEqual(upcoming_reviews[23], 23)
Ejemplo n.º 3
0
    def test_preprocessor_future_reviews_counts_correctly_provides_same_day_review_count(
            self):
        within_half_hour_review = create_review_for_specific_time(
            self.user, "some word",
            timezone.now() + timedelta(minutes=30))
        within_day_review = create_review_for_specific_time(
            self.user, "some word",
            timezone.now() + timedelta(hours=12))
        after_a_day_review = create_review_for_specific_time(
            self.user, "some word",
            timezone.now() + timedelta(hours=48))

        req = self.factory.get("/kw/")
        req.user = self.user

        context_data = review_count_preprocessor(req)

        self.assertEqual(context_data['reviews_within_day_count'], 2)
        self.assertEqual(context_data['reviews_within_hour_count'], 1)
        self.assertEqual(context_data['review_count'], 1)
Ejemplo n.º 4
0
def create_various_future_reviews_for_user(user):
    now = timezone.now()
    now = now.replace(minute=59)
    for i in range(0, 24):
        for j in range(0, 20):
            review = create_review_for_specific_time(
                user,
                str(i) + "-" + str(j), now + timezone.timedelta(hours=i))

            review.streak = random.randint(1, 8)
            review.save()
            review.refresh_from_db()
            print(review)
Ejemplo n.º 5
0
Archivo: utils.py Proyecto: tadgh/KW
def create_various_future_reviews_for_user(user):
    now = timezone.now()
    now = now.replace(minute=59)
    for i in range(0, 24):
        for j in range(0, 20):
            review = create_review_for_specific_time(
                user, str(i) + "-" + str(j), now + timezone.timedelta(hours=i)
            )

            review.streak = random.randint(1, 8)
            review.save()
            review.refresh_from_db()
            print(review)
Ejemplo n.º 6
0
    def test_future_review_counts_preprocessor_does_not_include_currently_active_reviews(
        self
    ):
        within_day_review = create_review_for_specific_time(
            self.user, "some word", timezone.now() + timedelta(hours=12)
        )
        within_day_review.needs_review = True
        within_day_review.save()

        self.client.force_login(user=self.user)
        response = self.client.get(reverse("api:user-me"))

        self.assertEqual(response.data["profile"]["reviews_within_day_count"], 0)
        self.assertEqual(response.data["profile"]["reviews_within_hour_count"], 0)
Ejemplo n.º 7
0
    def test_future_review_counts_preprocessor_does_not_include_currently_active_reviews(
            self):
        within_day_review = create_review_for_specific_time(
            self.user, "some word",
            timezone.now() + timedelta(hours=12))
        within_day_review.needs_review = True
        within_day_review.save()

        self.client.force_login(user=self.user)
        response = self.client.get(reverse("api:user-me"))

        self.assertEqual(response.data["profile"]["reviews_within_day_count"],
                         0)
        self.assertEqual(response.data["profile"]["reviews_within_hour_count"],
                         0)
Ejemplo n.º 8
0
    def test_future_review_counts_preprocessor_does_not_include_currently_active_reviews(
            self):
        within_day_review = create_review_for_specific_time(
            self.user, "some word",
            timezone.now() + timedelta(hours=12))
        within_day_review.needs_review = True
        within_day_review.save()

        req = self.factory.get("/kw/")
        req.user = self.user

        context_data = review_count_preprocessor(req)

        self.assertEqual(context_data['reviews_within_day_count'], 0)
        self.assertEqual(context_data['reviews_within_hour_count'], 0)
        self.assertEqual(context_data['review_count'], 2)
Ejemplo n.º 9
0
    def test_preprocessor_future_reviews_counts_correctly_provides_same_day_review_count(
            self):
        create_review_for_specific_time(self.user, "some word",
                                        timezone.now() + timedelta(minutes=30))
        create_review_for_specific_time(self.user, "some word",
                                        timezone.now() + timedelta(hours=12))
        create_review_for_specific_time(self.user, "some word",
                                        timezone.now() + timedelta(hours=48))

        self.client.force_login(user=self.user)
        response = self.client.get(reverse("api:user-me"))

        self.assertEqual(response.data["profile"]["reviews_within_day_count"],
                         2)
        self.assertEqual(response.data["profile"]["reviews_within_hour_count"],
                         1)
Ejemplo n.º 10
0
    def test_preprocessor_future_reviews_counts_correctly_provides_same_day_review_count(
        self
    ):
        create_review_for_specific_time(
            self.user, "some word", timezone.now() + timedelta(minutes=30)
        )
        create_review_for_specific_time(
            self.user, "some word", timezone.now() + timedelta(hours=12)
        )
        create_review_for_specific_time(
            self.user, "some word", timezone.now() + timedelta(hours=48)
        )

        self.client.force_login(user=self.user)
        response = self.client.get(reverse("api:user-me"))

        self.assertEqual(response.data["profile"]["reviews_within_day_count"], 2)
        self.assertEqual(response.data["profile"]["reviews_within_hour_count"], 1)