summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yaksh/models.py8
-rw-r--r--yaksh/test_models.py14
2 files changed, 16 insertions, 6 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index eb14e06..787daa6 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -1187,9 +1187,9 @@ class AnswerPaper(models.Model):
def current_question(self):
"""Returns the current active question to display."""
- questions = self.questions_unanswered.all()
- if questions.exists():
- cur_question = self.get_current_question(questions)
+ unanswered_questions = self.questions_unanswered.all()
+ if unanswered_questions.exists():
+ cur_question = self.get_current_question(unanswered_questions)
else:
cur_question = self.get_current_question(self.questions.all())
return cur_question
@@ -1197,7 +1197,7 @@ class AnswerPaper(models.Model):
def get_current_question(self, questions):
if self.questions_order:
question_id = int(self.questions_order.split(',')[0])
- question = self.questions_unanswered.get(id=question_id)
+ question = questions.get(id=question_id)
else:
question = questions.first()
return question
diff --git a/yaksh/test_models.py b/yaksh/test_models.py
index 03af521..00506cd 100644
--- a/yaksh/test_models.py
+++ b/yaksh/test_models.py
@@ -525,6 +525,7 @@ class AnswerPaperTestCases(unittest.TestCase):
question_paper=self.question_paper,
user=self.user
)
+ self.question_paper.fixed_questions.add(*self.questions)
already_attempted = self.attempted_papers.count()
self.answerpaper.attempt_number = already_attempted + 1
self.answerpaper.save()
@@ -598,8 +599,8 @@ class AnswerPaperTestCases(unittest.TestCase):
quiz=self.quiz2, total_marks=3, shuffle_questions=True)
self.question_paper2.save()
summary_list = ['Q%d' % (i) for i in range(1, 21)]
- que_list = Question.objects.filter(summary__in=summary_list)
- self.question_paper2.fixed_questions.add(*que_list)
+ self.que_list = Question.objects.filter(summary__in=summary_list)
+ self.question_paper2.fixed_questions.add(*self.que_list)
# Create AnswerPaper for user1 and user2
self.user1_answerpaper = self.question_paper2.make_answerpaper(
@@ -609,6 +610,10 @@ class AnswerPaperTestCases(unittest.TestCase):
self.user2, self.ip, 1
)
+ self.user2_answerpaper2 = self.question_paper.make_answerpaper(
+ self.user2, self.ip, 1
+ )
+
def test_validate_and_regrade_mcc_correct_answer(self):
# Given
mcc_answer = [str(self.mcc_based_testcase.id)]
@@ -881,6 +886,11 @@ class AnswerPaperTestCases(unittest.TestCase):
ques_set_2 = self.user2_answerpaper.get_all_ordered_questions()
self.assertFalse(ques_set_1 == ques_set_2)
+ def test_validate_current_question(self):
+ self.user2_answerpaper2.questions_unanswered.remove(*self.questions)
+ self.assertEqual(self.user2_answerpaper2.current_question(),
+ self.question1)
+
###############################################################################
class CourseTestCases(unittest.TestCase):