summaryrefslogtreecommitdiff
path: root/yaksh/test_models.py
diff options
context:
space:
mode:
authorankitjavalkar2017-10-11 15:56:44 +0530
committerankitjavalkar2017-10-17 15:48:43 +0530
commit8939dfcefc151ba41c7cb0a2ed32effab9120b0e (patch)
treec3a5d14e773dde5aecfbcdb0f7a5fcbf487d388e /yaksh/test_models.py
parentd433fe75da28d7051b96f2fbdc5a01d5b5c159b1 (diff)
downloadonline_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.py76
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]))