示例#1
0
 def test_get_hint_if_started(self, questions_provider):
     questions_list = self.generate_questions_list()
     questions_provider.get_questions.return_value = questions_list
     quest = Quest(questions_provider)
     quest.is_started = True
     quest.current_question_number = 2
     messages_list = quest.get_hint()
     self.assertEqual(quest.get_current_question(), questions_list[2])
     self.assertEqual(quest.current_question_number, 2)
     self.assertEqual(len(messages_list), 1)
     self.assertEqual(messages_list[0].text, questions_list[2].get_hint())
     self.assertEqual(messages_list[0].as_reply, False)
示例#2
0
 def test_start_quest_if_not_started(self, questions_provider):
     questions_list = self.generate_questions_list()
     questions_provider.get_questions.return_value = questions_list
     quest = Quest(questions_provider)
     messages_list = quest.start_quest()
     self.assertEqual(quest.is_started, True)
     self.assertEqual(len(messages_list), 3)
     self.assertEqual(quest.get_current_question(), questions_provider.get_questions()[0])
     self.assertEqual(quest.current_question_number, 0)
     self.assertEqual(messages_list[0].text, quest.messages['welcome'])
     self.assertEqual(messages_list[0].as_reply, False)
     self.assertEqual(messages_list[1].text, 'Question 1 of 3')
     self.assertEqual(messages_list[1].as_reply, False)
     self.assertEqual(messages_list[2].text, questions_provider.get_questions()[0].get_question())
     self.assertEqual(messages_list[2].as_reply, False)
示例#3
0
 def test_assess_answer_if_started_incorrect_answer(self, questions_provider):
     questions_list = self.generate_questions_list()
     q2 = questions_list[1]
     q2.assess_answer.return_value = (False, q2.fail_message)
     questions_provider.get_questions.return_value = questions_list
     quest = Quest(questions_provider)
     quest.is_started = True
     quest.current_question_number = 1
     
     messages_list = quest.assess_answer(questions_list[1].answer  + 'abc')
     
     self.assertEqual(quest.get_current_question(), questions_list[1])
     self.assertEqual(quest.current_question_number, 1)
     self.assertEqual(len(messages_list), 2)
     self.assertEqual(messages_list[0].text, questions_list[1].fail_message)
     self.assertEqual(messages_list[0].as_reply, True)
     self.assertEqual(messages_list[1].text, quest.messages['incorrect_answer'])
     self.assertEqual(messages_list[1].as_reply, True)
示例#4
0
 def test_assess_answer_if_started_correct_answer(self, questions_provider):
     questions_list = self.generate_questions_list()
     q2 = questions_list[1]
     q2.assess_answer.return_value = (True, q2.success_message)
     questions_provider.get_questions.return_value = questions_list
     quest = Quest(questions_provider)
     quest.is_started = True
     quest.current_question_number = 1
     
     messages_list = quest.assess_answer(questions_list[1].answer)
     
     self.assertEqual(quest.get_current_question(), questions_list[2])
     self.assertEqual(quest.current_question_number, 2)
     self.assertEqual(len(messages_list), 4)
     self.assertEqual(messages_list[0].text, questions_list[1].success_message)
     self.assertEqual(messages_list[0].as_reply, True)
     self.assertEqual(messages_list[1].text, quest.messages['correct_answer'])
     self.assertEqual(messages_list[1].as_reply, True)
     self.assertEqual(messages_list[2].text, 'Question 3 of 3')
     self.assertEqual(messages_list[2].as_reply, False)
     self.assertEqual(messages_list[3].text, questions_list[2].get_question())
     self.assertEqual(messages_list[3].as_reply, False)