def get_assessment_feedback(submission_uuid): """ Retrieve a feedback on an assessment. Args: submission_uuid: The submission we want to retrieve assessment feedback for. Returns: dict or None Raises: PeerAssessmentInternalError: Error occurred while retrieving the feedback. """ try: feedback = AssessmentFeedback.objects.get( submission_uuid=submission_uuid ) return AssessmentFeedbackSerializer(feedback).data except AssessmentFeedback.DoesNotExist: return None except DatabaseError: error_message = ( u"An error occurred retrieving assessment feedback for {}." .format(submission_uuid) ) logger.exception(error_message) raise PeerAssessmentInternalError(error_message)
def test_empty_options(self): feedback = AssessmentFeedback.objects.create( submission_uuid='abc123', feedback_text='Test feedback') serialized = AssessmentFeedbackSerializer(feedback).data self.assertItemsEqual( serialized, { 'submission_uuid': 'abc123', 'feedback_text': 'Test feedback', 'options': [], 'assessments': [], })
def test_serialize(self): feedback = AssessmentFeedback.objects.create( submission_uuid='abc123', feedback_text='Test feedback' ) feedback.add_options(['I liked my assessment', 'I thought my assessment was unfair']) serialized = AssessmentFeedbackSerializer(feedback).data self.assertCountEqual(serialized, { 'submission_uuid': 'abc123', 'feedback_text': 'Test feedback', 'options': [ {'text': 'I liked my assessment'}, {'text': 'I thought my assessment was unfair'}, ], 'assessments': [], })