diff options
author | ankitjavalkar | 2017-10-11 15:56:44 +0530 |
---|---|---|
committer | ankitjavalkar | 2017-10-17 15:48:43 +0530 |
commit | 8939dfcefc151ba41c7cb0a2ed32effab9120b0e (patch) | |
tree | c3a5d14e773dde5aecfbcdb0f7a5fcbf487d388e /yaksh/test_models.py | |
parent | d433fe75da28d7051b96f2fbdc5a01d5b5c159b1 (diff) | |
download | online_test-8939dfcefc151ba41c7cb0a2ed32effab9120b0e.tar.gz online_test-8939dfcefc151ba41c7cb0a2ed32effab9120b0e.tar.bz2 online_test-8939dfcefc151ba41c7cb0a2ed32effab9120b0e.zip |
Add tests to verify the change
Diffstat (limited to 'yaksh/test_models.py')
-rw-r--r-- | yaksh/test_models.py | 76 |
1 files changed, 72 insertions, 4 deletions
diff --git a/yaksh/test_models.py b/yaksh/test_models.py index 00506cd..3ba7a71 100644 --- a/yaksh/test_models.py +++ b/yaksh/test_models.py @@ -507,12 +507,19 @@ class AnswerPaperTestCases(unittest.TestCase): self.quiz = Quiz.objects.get(description='demo quiz 1') self.question_paper = QuestionPaper(quiz=self.quiz, total_marks=3) self.question_paper.save() + self.quiz2 = Quiz.objects.get(description='demo quiz 2') + self.qtn_paper_with_single_question = QuestionPaper( + quiz=self.quiz2, total_marks=3 + ) + self.qtn_paper_with_single_question.save() + self.questions = Question.objects.all()[0:3] self.start_time = timezone.now() self.end_time = self.start_time + timedelta(minutes=20) self.question1 = self.questions[0] self.question2 = self.questions[1] self.question3 = self.questions[2] + self.question4 = Question.objects.all()[3] # create answerpaper self.answerpaper = AnswerPaper(user=self.user, @@ -555,6 +562,32 @@ class AnswerPaperTestCases(unittest.TestCase): ) self.answerpaper.answers.add(self.answer1) + # create an answerpaper with only one question + self.answerpaper_single_question = AnswerPaper(user=self.user, + question_paper=self.question_paper, + start_time=self.start_time, + end_time=self.end_time, + user_ip=self.ip + ) + self.attempted_papers = AnswerPaper.objects.filter( + question_paper=self.question_paper, + user=self.user + ) + self.qtn_paper_with_single_question.fixed_questions.add(self.question4) + already_attempted = self.attempted_papers.count() + self.answerpaper_single_question.attempt_number = already_attempted + 1 + self.answerpaper_single_question.save() + self.answerpaper_single_question.questions.add(self.question4) + self.answerpaper_single_question.save() + # answers for the Answer Paper + self.single_answer = Answer(question=self.question4, + answer="Demo answer", + correct=True, marks=1, + error=json.dumps([]) + ) + self.single_answer.save() + self.answerpaper.answers.add(self.single_answer) + self.question1.language = 'python' self.question1.test_case_type = 'standardtestcase' self.question1.summary = "Question1" @@ -614,6 +647,39 @@ class AnswerPaperTestCases(unittest.TestCase): self.user2, self.ip, 1 ) + def test_returned_question_is_not_none(self): + # Test add_completed_question and next_question + # When all questions are answered + + current_question = self.answerpaper_single_question.add_completed_question( + self.question1.id + ) + + # Then + self.assertEqual(self.answerpaper_single_question.questions_left(), 0) + self.assertIsNotNone(current_question) + self.assertEqual(current_question.summary, "Q4") + + # When + next_question = self.answerpaper_single_question.next_question( + self.question1.id + ) + + # Then + self.assertEqual(self.answerpaper_single_question.questions_left(), 0) + self.assertIsNotNone(next_question) + self.assertEqual(next_question.summary, "Q4") + + # When + current_question = self.answerpaper_single_question.get_current_question( + self.answerpaper_single_question.questions.all() + ) + + # Then + self.assertEqual(self.answerpaper_single_question.questions_left(), 0) + self.assertIsNotNone(current_question) + self.assertEqual(current_question.summary, "Q4") + def test_validate_and_regrade_mcc_correct_answer(self): # Given mcc_answer = [str(self.mcc_based_testcase.id)] @@ -744,6 +810,7 @@ class AnswerPaperTestCases(unittest.TestCase): # Test completed_question() method of Answer Paper question = self.answerpaper.add_completed_question(self.question1.id) + self.assertIsNotNone(question) self.assertEqual(self.answerpaper.questions_left(), 2) # Test next_question() method of Answer Paper @@ -775,7 +842,6 @@ class AnswerPaperTestCases(unittest.TestCase): # Then self.assertTrue(next_question_id is not None) - self.assertEqual(next_question_id.summary, "Question1") # Given, last question in the list @@ -809,11 +875,12 @@ class AnswerPaperTestCases(unittest.TestCase): # When all questions are answered current_question = self.answerpaper.add_completed_question( - self.question2.id - ) + self.question2.id + ) # Then self.assertEqual(self.answerpaper.questions_left(), 1) + self.assertIsNotNone(current_question) self.assertEqual(current_question.summary, "Question3") # When @@ -823,6 +890,7 @@ class AnswerPaperTestCases(unittest.TestCase): # Then self.assertEqual(self.answerpaper.questions_left(), 0) + self.assertIsNotNone(current_question) self.assertTrue(current_question == self.answerpaper.questions.all()[0]) # When @@ -856,7 +924,7 @@ class AnswerPaperTestCases(unittest.TestCase): first_answer_obj = first_answer['answer'] self.assertEqual(first_answer_obj.answer, 'Demo answer') self.assertTrue(first_answer_obj.correct) - self.assertEqual(len(answered), 2) + self.assertEqual(len(answered), 3) def test_is_answer_correct(self): self.assertTrue(self.answerpaper.is_answer_correct(self.questions[0])) |