From 40613ae3f47eb470aff87359a952ed7e79ad8555 Mon Sep 17 00:00:00 2001 From: Leangseu Kim Date: Mon, 5 Jun 2023 12:38:17 -0400 Subject: [PATCH] fix: when no option selected, the criteria should try to create --- .../ora_staff_grader/serializers.py | 3 ++- .../tests/test_serializers.py | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/ora_staff_grader/serializers.py b/lms/djangoapps/ora_staff_grader/serializers.py index 76ca408f9d4e..643a4725e1a0 100644 --- a/lms/djangoapps/ora_staff_grader/serializers.py +++ b/lms/djangoapps/ora_staff_grader/serializers.py @@ -305,7 +305,8 @@ class StaffAssessSerializer(serializers.Serializer): def get_options_selected(self, instance): options_selected = {} for criterion in instance.get("criteria"): - options_selected[criterion["name"]] = criterion["selectedOption"] + if criterion["selectedOption"]: + options_selected[criterion["name"]] = criterion["selectedOption"] return options_selected diff --git a/lms/djangoapps/ora_staff_grader/tests/test_serializers.py b/lms/djangoapps/ora_staff_grader/tests/test_serializers.py index 13107926f2f4..19939c0f9b85 100644 --- a/lms/djangoapps/ora_staff_grader/tests/test_serializers.py +++ b/lms/djangoapps/ora_staff_grader/tests/test_serializers.py @@ -718,6 +718,13 @@ class TestStaffAssessSerializer(TestCase): ], } + grade_data_no_selected_option = { + "overallFeedback": "was pretty good", + "criteria": [ + {"name": "firstCriterion", "selectedOption": None}, + ], + } + submission_uuid = "foo" def test_staff_assess_serializer(self): @@ -757,3 +764,18 @@ def test_staff_assess_no_feedback(self): } assert serializer.data == expected_value + + def test_staff_assess_no_selected_option(self): + """When selected option is None, it should be ignored""" + context = {"submission_uuid": self.submission_uuid} + serializer = StaffAssessSerializer(self.grade_data_no_selected_option, context=context) + + expected_value = { + "options_selected": {}, + "criterion_feedback": {}, + "overall_feedback": "was pretty good", + "submission_uuid": self.submission_uuid, + "assess_type": "full-grade", + } + + assert serializer.data == expected_value