def test_grade_data_serializer__assessment(self, has_criteria): """Base serialization behavior, with and without criteria""" input_data = MagicMock() if has_criteria: input_data.criteria = [Mock(points=123), Mock(points=11), Mock(points=22)] data = GradeDataSerializer(input_data).data expected_value = { "score": ScoreField().to_representation(input_data.score), "overallFeedback": str(input_data.feedback), } if has_criteria: expected_value["criteria"] = [ AssessmentCriteriaSerializer(criterion).data for criterion in input_data.criteria ] else: expected_value["criteria"] = [] assert data == expected_value
def test_field(self): """Base serialization behavior for ScoreField""" data = {"pointsEarned": 20, "pointsPossible": 40} representation = ScoreField().to_representation(data) assert representation == data
def test_field_missing(self, missing_field): """Missing fields should just be ignored""" value = {"pointsEarned": 30, "pointsPossible": 50} del value[missing_field] assert ScoreField().to_representation(value) == value
def test_field_no_values(self): """An empty dict passed to the field should return None""" assert ScoreField().to_representation({}) is None