diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py index fecce659752c..a7e0e69e73f5 100644 --- a/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py +++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/combined_open_ended_modulev1.py @@ -828,7 +828,7 @@ def get_rubric(self, _data): contexts = [] rubric_number = self.current_task_number - if self.ready_to_reset: + if self.ready_to_reset and len(self.task_states) > rubric_number + 1: rubric_number+=1 response = self.get_last_response(rubric_number) score_length = len(response['grader_types']) diff --git a/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py b/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py index f08af88a8779..e4eab62395f3 100644 --- a/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py +++ b/common/lib/xmodule/xmodule/tests/test_combined_open_ended.py @@ -791,6 +791,14 @@ def test_state_single(self): def test_state_pe_single(self): self.ai_state_success(TEST_STATE_PE_SINGLE, iscore=0, tasks=[self.task_xml2]) + def test_get_rubric(self): + self.combinedoe.ready_to_reset = True + + response = self.combinedoe.get_rubric({}) + + # Should be succeeded. + self.assertEqual(response.get("success"), True) + class CombinedOpenEndedModuleConsistencyTest(unittest.TestCase): """