def _patch_answer_response(client: Client, answer_response: quiz_models.AnswerResponse): """ Patch answer response throw client. """ answer_response_id = answer_response.id quiz_id = answer_response.quiz_id url = f'/api/answer_responses/{answer_response_id}/' data = get_test_answer_response_data() data['quiz'] = str(quiz_id) data['answers_to_questions'][0] = { "question": 1, "text": "new answer", "answer_options": [] } data['answers_to_questions'][1] = { "question": 2, "text": "", "answer_options": [2] } response = client.patch(path=url, data=json.dumps(data), content_type='application/json') return response
def make_answer_response(user_id: int, quiz: Quiz) -> AnswerResponse: answer_response_data = get_test_answer_response_data() answer_response_data['quiz'] = quiz.id answer_response_data['user'] = user_id answer_response_serializer = serializers.AnswerResponseDetailSerializer( data=answer_response_data) answer_response_serializer.is_valid() answer_response = answer_response_serializer.create( answer_response_serializer.validated_data) return answer_response
def test_post_answer_response(self, client: Client, create_quiz: quiz_models.Quiz, create_user: user_models.AnonymousUser): """ Test answer response posting. """ quiz_id = create_quiz.id user_id = create_user.id data = get_test_answer_response_data() data['user'] = user_id data['quiz'] = str(quiz_id) client.post(path=f'/api/answer_responses/', data=json.dumps(data), content_type='application/json') answer_response = quiz_models.AnswerResponse.objects.filter( quiz__id=quiz_id, user__id=user_id, )[0] assert (answer_response.quiz_id == quiz_id and answer_response.user_id == user_id and len(answer_response.answertoquestion_set.all()) == 3)
def test_bad_data(self, create_quiz, create_question): question_id = create_question good_data = quizzes_data.get_test_answer_response_data() bad_data = self.make_bad_data(good_data, question_id) self.check_bad_data(bad_data, create_quiz)
def test_bad_data(self, create_quiz): """Test bad data validation.""" good_data = quizzes_data.get_test_answer_response_data() bad_data = self.make_bad_data(good_data) self.check_bad_data(bad_data, create_quiz)
def test_good_data(self, create_quiz): """Test good data validation.""" good_data = quizzes_data.get_test_answer_response_data() data = self.build_data(good_data, create_quiz) self.validator().validate(data)
def test_one_choice_type(self, create_quiz): data = quizzes_data.get_test_answer_response_data() bad_data = self._make_bad_many_choices(data) self.check_bad_data(bad_data, create_quiz)