def test_override_highest_no_score(self):
        item = StudentItem.objects.create(
            student_id="score_test_student",
            course_id="score_test_course",
            item_id="i4x://mycourse/special_presentation",
        )

        # Override score with no score
        Score.create_override_score(item, 9, 10)
        highest = ScoreSummary.objects.get(student_item=item).highest
        self.assertEqual(highest.points_earned, 9)
        self.assertEqual(highest.points_possible, 10)
Beispiel #2
0
    def test_override_highest_no_score(self):
        item = StudentItem.objects.create(
            student_id="score_test_student",
            course_id="score_test_course",
            item_id="i4x://mycourse/special_presentation",
        )

        # Override score with no score
        Score.create_override_score(item, 9, 10)
        highest = ScoreSummary.objects.get(student_item=item).highest
        self.assertEqual(highest.points_earned, 9)
        self.assertEqual(highest.points_possible, 10)
Beispiel #3
0
def score_override(student_item_dict, points_override, points_possible):
    """
    Create a score override for peer assessment question.

    Args:
        student_item (dict): The dictionary representation of a student item.
        points_override (string): Points provided by the instructor as an override.
        points_possible (string): Max points for this question.

    Returns:
        True if successful otherwise False
    """
    student_item_model = _get_or_create_student_item(student_item_dict)
    try:
        Score.create_override_score(student_item_model, points_override,
                                    points_possible)
    except (DatabaseError, ValueError):
        msg = (
            u"Error occurred while creating override score for"
            u" item {item_id} in course {course_id} for student {student_id}"
            u" points_possible {points_possible} points_override {points_override}"
        ).format(
            item_id=student_item_dict['item_id'],
            course_id=student_item_dict['course_id'],
            student_id=student_item_dict['student_id'],
            points_possible=points_possible,
            points_override=points_override,
        )
        logger.exception(msg)
        raise SubmissionInternalError(msg)
    else:
        msg = (
            u"Score overridden for item {item_id} in course {course_id} for student {student_id}"
            u" points_possible {points_possible} points_override {points_override}"
        ).format(
            item_id=student_item_dict['item_id'],
            course_id=student_item_dict['course_id'],
            student_id=student_item_dict['student_id'],
            points_possible=points_possible,
            points_override=points_override,
        )
        logger.info(msg)
    def test_override_highest_with_score(self):
        item = StudentItem.objects.create(
            student_id="score_test_student",
            course_id="score_test_course",
            item_id="i4x://mycourse/special_presentation",
        )
        # Override score after a non-reset score
        submission = Submission.objects.create(
            student_item=item,
            attempt_number=1,
        )
        Score.objects.create(
            student_item=item,
            submission=submission,
            points_earned=1,
            points_possible=15,
        )

        Score.create_override_score(item, 5, 15)
        highest = ScoreSummary.objects.get(student_item=item).highest
        self.assertEqual(highest.points_earned, 5)
        self.assertEqual(highest.points_possible, 15)
Beispiel #5
0
    def test_override_highest_with_score(self):
        item = StudentItem.objects.create(
            student_id="score_test_student",
            course_id="score_test_course",
            item_id="i4x://mycourse/special_presentation",
        )
        # Override score after a non-reset score
        submission = Submission.objects.create(
            student_item=item,
            attempt_number=1,
        )
        Score.objects.create(
            student_item=item,
            submission=submission,
            points_earned=1,
            points_possible=15,
        )

        Score.create_override_score(item, 5, 15)
        highest = ScoreSummary.objects.get(student_item=item).highest
        self.assertEqual(highest.points_earned, 5)
        self.assertEqual(highest.points_possible, 15)