class PenduGameTest(TestCase): def setUp(self): self.reader = Mock() self.writer = Mock() self.computer = HangmanComputer() self.game = HangmanGame(self.reader, self.writer, self.computer) def test_basic_play(self): self.reader.read_input.return_value = 't' state = State(5, 'voiture', '*******') self.game.play(state) self.reader.read_input.assert_called_once_with() self.writer.write_output.assert_called_once_with(5, '***t***') def test_win(self): self.reader.read_input.return_value = 'e' state = State(10, 'voiture', 'voitur*') self.game.play(state) self.reader.read_input.assert_called_once_with() self.writer.win.assert_called_once_with() def test_lose(self): self.reader.read_input.return_value = 's' state = State(1, 'voiture', 'vo***re') self.game.play(state) self.reader.read_input.assert_called_once_with() self.writer.lose.assert_called_once_with('voiture') def test_already_won(self): self.reader.read_input.return_value = 'e' state = State(2, 'voiture', 'voiture') with self.assertRaises(ValueError): self.game.play(state) self.assertEqual(self.reader.read_input.call_count, 0) def test_already_lose(self): self.reader.read_input.return_value = 'e' state = State(0, 'voiture', 'v***ure') with self.assertRaises(ValueError): self.game.play(state) self.assertEqual(self.reader.read_input.call_count, 0)
def setUp(self): self.reader = Mock() self.writer = Mock() self.computer = HangmanComputer() self.game = HangmanGame(self.reader, self.writer, self.computer)