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)
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)
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)
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)
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)
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)
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)
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)
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)
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)