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)
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)
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)
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)