def test_button_mashing(self): game = HangmanGame(word='moo') for event in string.lowercase.replace('o', ''): game.event(event) game.event('o') self.assertTrue(game.won()) self.assertEqual(game.state(), "moo:%s:Button mashing!" % string.lowercase)
def test_garbage_input(self): game = HangmanGame(word="zoo") for garbage in [ ":", "!", "\x00", "+", "abc", "", ]: game.event(garbage) self.assertEqual(game.guesses, set()) game.event('z') game.event('o') self.assertTrue(game.won())
def test_incorrect_guesses(self): game = HangmanGame(word='moo') game.event('f') game.event('g') self.assertFalse(game.won()) self.assertTrue(game.state().startswith("moo:fg:Word contains no"))
def test_repeated_guesses(self): game = HangmanGame(word='moo') game.event('f') game.event('f') self.assertFalse(game.won()) self.assertTrue(game.state().startswith("moo:f:You've already"))
def test_easy_game(self): game = HangmanGame(word='moo') game.event('m') game.event('o') self.assertTrue(game.won()) self.assertTrue(game.state().startswith("moo:mo:Flawless"))