diff --git a/lms/djangoapps/grades/subsection_grade.py b/lms/djangoapps/grades/subsection_grade.py index a45efc29d6..09ddf3e3c7 100644 --- a/lms/djangoapps/grades/subsection_grade.py +++ b/lms/djangoapps/grades/subsection_grade.py @@ -141,7 +141,10 @@ class NonZeroSubsectionGrade(SubsectionGradeBase): @property def percent_graded(self): - return self.graded_total.earned / self.graded_total.possible + if self.graded_total.possible > 0: + return self.graded_total.earned / self.graded_total.possible + else: + return 0.0 @staticmethod def _compute_block_score( diff --git a/lms/djangoapps/grades/tests/test_subsection_grade.py b/lms/djangoapps/grades/tests/test_subsection_grade.py index 88311db9e4..1b068b387c 100644 --- a/lms/djangoapps/grades/tests/test_subsection_grade.py +++ b/lms/djangoapps/grades/tests/test_subsection_grade.py @@ -36,3 +36,13 @@ class SubsectionGradeTest(GradeTestBase): read_grade.all_total.first_attempted = created_grade.all_total.first_attempted = None self.assertEqual(created_grade.all_total, read_grade.all_total) self.assertEqual(created_grade.percent_graded, 0.5) + + def test_zero(self): + with mock_get_score(1, 0): + grade = CreateSubsectionGrade( + self.sequence, + self.course_structure, + self.subsection_grade_factory._submissions_scores, + self.subsection_grade_factory._csm_scores, + ) + self.assertEqual(grade.percent_graded, 0.0)