def test_total_points(self): quiz = QuizFactory(course=self.course, scoring_scheme=0) QuestionFactory(quiz=quiz) QuestionFactory(quiz=quiz) self.assertEqual(quiz.total_points(), 10) quiz.scoring_scheme = 1 quiz.save() self.assertEqual(quiz.total_points(), 6) quiz.scoring_scheme = 2 quiz.save() self.assertEqual(quiz.total_points(), 6)
class QuizSubmissionTest(CourseTestMixin, TestCase): def setUp(self): self.setup_course() self.quiz = QuizFactory(course=self.course) self.question1 = QuestionFactory(quiz=self.quiz) self.question2 = QuestionFactory(quiz=self.quiz) def test_score_easy_quiz(self): self.quiz.scoring_scheme = 0 self.quiz.save() submission = QuizSubmissionFactory(quiz=self.quiz, user=self.student) response = submission.questionresponse_set.get(question=self.question1) response.selected_position = 4 response.save() correct_marker = response.questionresponsemarker_set.get( marker__correct=True) correct_marker.ordinal = 2 correct_marker.save() self.assertEqual(response.user_question_points(), 0) response = submission.questionresponse_set.get(question=self.question2) response.selected_position = 4 response.save() correct_marker = response.questionresponsemarker_set.get( marker__correct=True) correct_marker.ordinal = 1 correct_marker.save() self.assertEqual(response.user_question_points(), 5) self.assertEqual(submission.user_points(), 5) self.assertEqual(submission.user_score(), 0.5) self.assertEqual(submission.user_score_percent(), 50) def test_score_medium_quiz(self): self.quiz.scoring_scheme = 1 self.quiz.save() self.assertEqual(self.quiz.question_set.count(), 2) submission = QuizSubmissionFactory(quiz=self.quiz, user=self.student) response = submission.questionresponse_set.get(question=self.question1) response.selected_position = 1 response.save() correct_marker = response.questionresponsemarker_set.get( marker__correct=True) correct_marker.ordinal = 2 correct_marker.save() self.assertEqual(response.user_question_points(), -2) self.assertEqual(submission.questionresponse_set.count(), 2) response = submission.questionresponse_set.get(question=self.question2) response.selected_position = 5 response.save() correct_marker = response.questionresponsemarker_set.get( marker__correct=True) correct_marker.ordinal = 1 correct_marker.save() self.assertEqual(response.user_question_points(), 2) self.assertEqual(submission.questionresponse_set.count(), 2) self.assertEqual(submission.user_points(), 0) self.assertEqual(submission.user_score(), 0.0) self.assertEqual(submission.user_score_percent(), 0) def test_i_dont_know(self): submission = QuizSubmissionFactory(quiz=self.quiz, user=self.student) response = submission.questionresponse_set.get(question=self.question1) response.selected_position = 12 response.save() correct_marker = response.questionresponsemarker_set.get( marker__correct=True) correct_marker.ordinal = 2 correct_marker.save() self.assertEqual(response.user_question_points(), 0) response = submission.questionresponse_set.get(question=self.question2) response.selected_position = 12 response.save() correct_marker = response.questionresponsemarker_set.get( marker__correct=True) correct_marker.ordinal = 1 correct_marker.save() self.assertEqual(response.user_question_points(), 0) self.assertEqual(submission.user_points(), 0) self.assertEqual(submission.user_score(), 0.0) self.assertEqual(submission.user_score_percent(), 0)