Ejemplo n.º 1
0
    def test_get_next_user_in_rotation(self):
        suggestion_services.create_new_user_contribution_scoring_model(
            self.user_a_id, 'category_a', 15)
        suggestion_services.create_new_user_contribution_scoring_model(
            self.user_b_id, 'category_a', 15)
        suggestion_services.create_new_user_contribution_scoring_model(
            self.user_c_id, 'category_a', 15)

        user_ids = [self.user_a_id, self.user_b_id, self.user_c_id]
        user_ids.sort()
        self.assertEqual(
            suggestion_services.get_next_user_in_rotation('category_a'),
            user_ids[0])
        self.assertEqual(
            suggestion_models.ReviewerRotationTrackingModel.get_by_id(
                'category_a').current_position_in_rotation, user_ids[0])

        self.assertEqual(
            suggestion_services.get_next_user_in_rotation('category_a'),
            user_ids[1])
        self.assertEqual(
            suggestion_models.ReviewerRotationTrackingModel.get_by_id(
                'category_a').current_position_in_rotation, user_ids[1])

        self.assertEqual(
            suggestion_services.get_next_user_in_rotation('category_a'),
            user_ids[2])
        self.assertEqual(
            suggestion_models.ReviewerRotationTrackingModel.get_by_id(
                'category_a').current_position_in_rotation, user_ids[2])

        # Rotates back.
        self.assertEqual(
            suggestion_services.get_next_user_in_rotation('category_a'),
            user_ids[0])
        self.assertEqual(
            suggestion_models.ReviewerRotationTrackingModel.get_by_id(
                'category_a').current_position_in_rotation, user_ids[0])

        self.assertEqual(
            suggestion_services.get_next_user_in_rotation('category_invalid'),
            None)
Ejemplo n.º 2
0
 def get(self):
     """Handles get requests."""
     if feconf.SEND_SUGGESTION_REVIEW_RELATED_EMAILS:
         score_categories = suggestion_models.get_all_score_categories()
         for score_category in score_categories:
             suggestions = suggestion_services.query_suggestions(
                 [('score_category', score_category),
                  ('status', suggestion_models.STATUS_ACCEPTED)])
             if len(suggestions) > 0:
                 reviewer_id = suggestion_services.get_next_user_in_rotation(
                     score_category)
                 email_manager.send_mail_to_notify_users_to_review(
                     reviewer_id, score_category)