def test_numeric_input(self): """Test error message when user inputs numbers.""" self.choice.return_value = "ant" self.input.side_effect = list("a2nt" "n") gallows.main() self.xprint.assert_any_call('Please enter a LETTER.')
def test_multiple_char_input(self): """Test error message when user inputs multiple characters.""" self.choice.return_value = "ant" self.input.side_effect = ["a", "nt", "n", "t", ] + ["n"] gallows.main() self.xprint.assert_any_call('Please enter a single letter.')
def test_lose(self): """Test user lose scenario.""" self.choice.return_value = "ant" self.input.side_effect = list("bcdefg" "n") gallows.main() self.xprint.assert_any_call('You have run out of guesses!')
def test_out_of_order(self): """Test win scenario with out of order input of letters.""" self.choice.return_value = "ant" self.input.side_effect = list("tan" "n") gallows.main() self.xprint.assert_any_call('Yes! The secret word is "ant"! ' 'You have won!')
def test_win(self): """Test user win scenario.""" self.choice.return_value = "ant" self.input.side_effect = list("ant" "n") gallows.main() self.xprint.assert_any_call('Yes! The secret word is "ant"! ' 'You have won!')
def test_same_letter_twice(self): """Test error message when user enters same letter twice.""" self.choice.return_value = "ant" self.input.side_effect = list("anntn") gallows.main() self.xprint.assert_any_call("You have already guessed that letter. " "Choose again.")
def test_two_game(self): """Test two winning game plays.""" self.choice.side_effect = ["ant", "baboon"] self.input.side_effect = list("ant" "y" "babon" "n") gallows.main() self.xprint.assert_any_call('Yes! The secret word is "ant"! ' 'You have won!') self.xprint.assert_any_call('Yes! The secret word is "baboon"! ' 'You have won!')
def test_two_game(self): """Test two winning game plays.""" from itertools import chain self.choice.side_effect = ["ant", "baboon"] self.input.side_effect = chain(list("ant"), ["yes"], list("babon"), ["no"]) gallows.main() self.xprint.assert_any_call('Yes! The secret word is "ant"! ' 'You have won!') self.xprint.assert_any_call('Yes! The secret word is "baboon"! ' 'You have won!')
def test_multiple_char_input(self): """Test error message when user inputs multiple characters.""" self.choice.return_value = "ant" self.input.side_effect = [ "a", "nt", "n", "t", ] + ["n"] gallows.main() self.xprint.assert_any_call('Please enter a single letter.')
def test_main_win(capsys): with mock.patch('builtins.input', side_effect=['%', 'B', 'L', 'A']): gallows.main(word) captured = capsys.readouterr() assert 'Congratulations! You win!' in captured.out
def test_main_lose(capsys): with mock.patch('builtins.input', side_effect=['e', 'r', 'r', 'o']): gallows.main(word) captured = capsys.readouterr() assert 'You lose!' in captured.out