コード例 #1
0
 def test_contains_question_with_two_choices(self):
     question_list = mixer.blend('questions.QuestionList')
     question = mixer.blend('questions.Question',
                            question_list=question_list)
     mixer.cycle(2).blend('questions.QuestionChoice', question=question)
     assert question_list in QuestionList.objects.not_contains_only_questions_with_no_choices(
     )
コード例 #2
0
 def test_question_with_not_selected_single_choice(self):
     question = mixer.blend('questions.Question')
     choice = mixer.blend('questions.QuestionChoice', question=question)
     assert list(question.get_choices_percentage()) == [{
         'choice': choice.id,
         'percent': 0
     }]
コード例 #3
0
ファイル: factory.py プロジェクト: temirlanKabylbekov/quiz
 def answered_question_list(cls, question_list, user):
     for question in question_list.questions.iterator():
         random_choice = question.choices.order_by('?').first()
         mixer.blend('answers.Answer',
                     question=question,
                     choice=random_choice,
                     user=user)
     question_list.refresh_from_db()
     return question_list
コード例 #4
0
 def _create_question_with_answers(self, answers):
     question = mixer.blend('questions.Question')
     choice1 = mixer.blend('questions.QuestionChoice', question=question)
     choice2 = mixer.blend('questions.QuestionChoice', question=question)
     choice3 = mixer.blend('questions.QuestionChoice', question=question)
     Factory.answered_question_choice(choice1, num_answers=answers[0])
     Factory.answered_question_choice(choice2, num_answers=answers[1])
     Factory.answered_question_choice(choice3, num_answers=answers[2])
     return question, choice1, choice2, choice3
コード例 #5
0
 def test_not_selected_by_any_user_question_choices(self):
     question = mixer.blend('questions.Question')
     choice1 = mixer.blend('questions.QuestionChoice', question=question)
     choice2 = mixer.blend('questions.QuestionChoice', question=question)
     assert list(question.get_choices_percentage()) == [
         {
             'choice': choice1.id,
             'percent': 0
         },
         {
             'choice': choice2.id,
             'percent': 0
         },
     ]
コード例 #6
0
 def test_only_one_choice_was_selected(self):
     question = mixer.blend('questions.Question')
     choice1 = mixer.blend('questions.QuestionChoice', question=question)
     choice2 = mixer.blend('questions.QuestionChoice', question=question)
     Factory.answered_question_choice(choice1, num_answers=2)
     assert list(question.get_choices_percentage()) == [
         {
             'choice': choice1.id,
             'percent': 100
         },
         {
             'choice': choice2.id,
             'percent': 0
         },
     ]
コード例 #7
0
ファイル: factory.py プロジェクト: temirlanKabylbekov/quiz
 def question_list(cls, num_questions, num_choices):
     quest_list = mixer.blend('questions.QuestionList', has_published=True)
     [
         cls.question(num_choices, question_list=quest_list)
         for _ in range(num_questions)
     ]
     quest_list.refresh_from_db()
     return quest_list
コード例 #8
0
    def test_keeping_order(self):
        qlist = mixer.blend('questions.QuestionList')
        q1 = Factory.question(num_choices=2, question_list=qlist)
        q2 = Factory.question(num_choices=0, question_list=qlist)
        q3 = Factory.question(num_choices=3, question_list=qlist)
        q4 = Factory.question(num_choices=1, question_list=qlist)
        q5 = Factory.question(num_choices=2, question_list=qlist)
        qlist.set_question_order([q1.id, q5.id, q3.id, q4.id, q2.id])

        assert list(qlist.get_questions()) == [q1, q5, q3]
コード例 #9
0
 def _create_user(self, god_mode=True):
     user_opts = dict()
     if god_mode:
         user_opts = {
             'is_staff': True,
             'is_superuser': True,
         }
     user = mixer.blend('a12n.User', **user_opts)
     self.password = ''.join([random.choice(string.hexdigits) for _ in range(0, 6)])
     user.set_password(self.password)
     user.save()
     return user
コード例 #10
0
 def test_question_without_choices(self):
     question = mixer.blend('questions.Question')
     assert list(question.get_choices_percentage()) == []
コード例 #11
0
 def test_not_contains_empty_list(self):
     empty_list = mixer.blend('questions.QuestionList')
     assert empty_list not in QuestionList.objects.has_at_least_one_question(
     )
コード例 #12
0
 def test_not_contains_question_with_single_choice(self):
     qlist = mixer.blend('questions.QuestionList')
     question = Factory.question(num_choices=1, question_list=qlist)
     assert question not in qlist.get_questions()
コード例 #13
0
 def setUpTestData(cls):
     cls.user = mixer.blend('auth.User')
コード例 #14
0
 def test_list_not_contains_questions(self):
     question_list = mixer.blend('questions.QuestionList')
     assert question_list.has_passed_by(self.user) is False
コード例 #15
0
 def test_question_without_choices(self):
     question = mixer.blend('questions.Question')
     assert question not in Question.objects.has_choices()
コード例 #16
0
 def test_not_contains_question_with_zero_choices(self):
     question_list = mixer.blend('questions.QuestionList')
     mixer.blend('questions.Question', question_list=question_list)
     assert question_list not in QuestionList.objects.not_contains_only_questions_with_no_choices(
     )
コード例 #17
0
 def test_contains_list_with_more_than_one_question(self):
     list_with_two_questions = mixer.blend('questions.QuestionList')
     mixer.cycle(2).blend('questions.Question',
                          question_list=list_with_two_questions)
     assert list_with_two_questions in QuestionList.objects.has_at_least_one_question(
     )
コード例 #18
0
 def test_contains_list_with_single_question(self):
     list_with_one_question = mixer.blend('questions.QuestionList')
     mixer.blend('questions.Question', question_list=list_with_one_question)
     assert list_with_one_question in QuestionList.objects.has_at_least_one_question(
     )
コード例 #19
0
ファイル: factory.py プロジェクト: temirlanKabylbekov/quiz
 def question(cls, num_choices, **kwargs):
     quest = mixer.blend('questions.Question', **kwargs)
     mixer.cycle(num_choices).blend('questions.QuestionChoice',
                                    question=quest)
     quest.refresh_from_db()
     return quest