def test_display_game(self, mock_print): """Test that the output of display game matches history.""" mm = MasterMind(8) mm.secret = 'ywwr' guess_1 = Guess('rbwr') mm.guesses.append(guess_1) mm.evaluate_guess() guess_2 = Guess('wwrr') mm.guesses.append(guess_2) mm.evaluate_guess() guess_3 = Guess('ywrr') mm.guesses.append(guess_3) mm.evaluate_guess() mm.display_game() self.assertEqual(5, mock_print.call_count) expected = [ call('------------------------'), call(guess_1), call(guess_2), call(guess_3), call('------------------------'), ] mock_print.assert_has_calls(expected)
def test_evaluate_guess_0_0(self): """Test no matches at all.""" guess = Guess('rgby') mm = MasterMind(8) mm.secret = 'Gmcw' mm.guesses.append(guess) mm.evaluate_guess() self.assertEqual(0, mm.guesses[0].black) self.assertEqual(0, mm.guesses[0].white)
def test_evaluate_double_color_guess(self): """Test that a double color in the guess only counts once.""" guess = Guess('rbwr') mm = MasterMind(8) mm.secret = 'grgy' mm.guesses.append(guess) mm.evaluate_guess() self.assertEqual(1, mm.guesses[0].black) self.assertEqual(0, mm.guesses[0].white)
def test_evaluate_guess_4_0(self): """Test 4 matches in wrong spots.""" guess = Guess('rgby') mm = MasterMind(8) mm.secret = 'gbyr' mm.guesses.append(guess) mm.evaluate_guess() self.assertEqual(4, mm.guesses[0].black) self.assertEqual(0, mm.guesses[0].white)
def test_evaluate_guess_win(self): """Test 4 matches in wrong spots.""" guess = Guess('rgby') mm = MasterMind(8) mm.secret = 'rgby' mm.guesses.append(guess) mm.display_game_over = MagicMock() mm.evaluate_guess() self.assertTrue(mm.game_over) self.assertTrue(mm.winner)
def test_display_game(self, mock_print): """Test that the output of display game matches history.""" mm = MasterMind(8) mm.secret = 'ywwr' guess_1 = Guess('rbwr') mm.guesses.append(guess_1) mm.evaluate_guess() guess_2 = Guess('wwrr') mm.guesses.append(guess_2) mm.evaluate_guess() guess_3 = Guess('ywrr') mm.guesses.append(guess_3) mm.evaluate_guess() mm.display_game() self.assertEqual(5, mock_print.call_count) expected = [call('------------------------'), call(guess_1), call(guess_2), call(guess_3), call('------------------------'), ] mock_print.assert_has_calls(expected)