Distinguish zeros from null when considering grade overrides in subsection grades.
This commit is contained in:
committed by
Alex Dusenbery
parent
2c9b04db21
commit
068b4a8c44
@@ -195,8 +195,15 @@ class NonZeroSubsectionGrade(SubsectionGradeBase):
|
||||
possible_value = getattr(grade_model, 'possible_{}'.format(score_type))
|
||||
if hasattr(grade_model, 'override'):
|
||||
score_type = 'graded_override' if is_graded else 'all_override'
|
||||
earned_value = getattr(grade_model.override, 'earned_{}'.format(score_type)) or earned_value
|
||||
possible_value = getattr(grade_model.override, 'possible_{}'.format(score_type)) or possible_value
|
||||
|
||||
earned_override = getattr(grade_model.override, 'earned_{}'.format(score_type))
|
||||
if earned_override is not None:
|
||||
earned_value = earned_override
|
||||
|
||||
possible_override = getattr(grade_model.override, 'possible_{}'.format(score_type))
|
||||
if possible_override is not None:
|
||||
possible_value = possible_override
|
||||
|
||||
return AggregatedScore(
|
||||
tw_earned=earned_value,
|
||||
tw_possible=possible_value,
|
||||
|
||||
@@ -142,7 +142,7 @@ class TestSubsectionGradeFactory(ProblemSubmissionTestMixin, GradeTestBase):
|
||||
UserFactory(),
|
||||
persistent_grade,
|
||||
earned_graded_override=earned_graded_override,
|
||||
earned_all_override=0,
|
||||
earned_all_override=earned_graded_override,
|
||||
possible_graded_override=possible_graded_override,
|
||||
feature=PersistentSubsectionGradeOverrideHistory.GRADEBOOK,
|
||||
)
|
||||
@@ -151,8 +151,10 @@ class TestSubsectionGradeFactory(ProblemSubmissionTestMixin, GradeTestBase):
|
||||
# the subsection grade returned should be 0/3 due to the override.
|
||||
with mock_get_score(2, 3):
|
||||
grade = self.subsection_grade_factory.update(self.sequence)
|
||||
self.assert_grade(
|
||||
grade,
|
||||
earned_graded_override or persistent_grade.earned_graded,
|
||||
possible_graded_override or persistent_grade.possible_graded
|
||||
)
|
||||
expected_earned = earned_graded_override
|
||||
if earned_graded_override is None:
|
||||
expected_earned = persistent_grade.earned_graded
|
||||
expected_possible = possible_graded_override
|
||||
if possible_graded_override is None:
|
||||
expected_possible = persistent_grade.possible_graded
|
||||
self.assert_grade(grade, expected_earned, expected_possible)
|
||||
|
||||
Reference in New Issue
Block a user