def test_ask_should_not_accept_invalid_choice(self, stdin): self.last_input = None def input(): if self.last_input == None: self.last_input = 'x' else: self.last_input = '2' return self.last_input stdin.readline = input self.assertEqual((2, 'b'), ask('Test?', ['a', 'b']))
def test_ask_should_return_first_choice_in_non_interactive_mode(self): self.assertEqual((1, 'a'), ask('Test?', ['a', 'b'], interactive=False))
def test_ask_should_print_choices_when_not_under_test(self, stdin, stdout): stdin.readline.return_value = '' stdout.write.return_value = '' self.assertEqual((1, 'a'), ask('Test?', ['a', 'b']))
def test_ask_should_accept_first_choice_by_default(self, stdin): stdin.readline.return_value = '' self.assertEqual((1, 'a'), ask('Test?', ['a', 'b']))
def test_ask_should_accept_label_choice(self, stdin): stdin.readline.return_value = 'b' self.assertEqual((2, 'b'), ask('Test?', ['a', 'b']))
def test_ask_should_accept_numeric_choice(self, stdin): stdin.readline.return_value = '1' self.assertEqual((1, 'a'), ask('Test?', ['a', 'b']))