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