def test_win_can_detect_a_winning_combination_present_on_the_game_board( board_state, win_status): new_board = Board() new_board.board = board_state assert new_board.win() == win_status
def test_winner_saves_the_winner(board_state, winner_token): new_board = Board() new_board.board = board_state assert new_board.winner() assert new_board.winner() == winner_token
def test_game_over_returns_true_when_a_game_is_won(board_state, game_over_status): new_board = Board() new_board.board = board_state assert new_board.game_over() == game_over_status
def test_within_bounds_returns_true_if_move_is_within_index_range(): new_board = Board() new_board.board = ["X", " ", " ", " ", " ", " ", " ", " ", " "] assert not new_board.within_bounds(10) assert new_board.within_bounds(1)
def test_position_taken_returns_true_if_square_is_already_occupied_and_false_if_not( ): new_board = Board() new_board.board = ["X", " ", " ", " ", " ", " ", " ", " ", " "] assert new_board.position_taken(0) assert not new_board.position_taken(1)
def test_turn_count_keeps_track_of_number_of_turns(board_state, turn_count): new_board = Board() new_board.board = board_state player = Player(token=["X", "O"]) assert new_board.turn_count(player) == turn_count
def test_board_raises_error_when_positions_are_taken(): new_board = Board() player = Player(token=["X", "O"]) new_board.board = ["X"] with pytest.raises(PositionAlreadyTakenError): new_board.turn(0, player)
def test_current_player_returns_current_player_token(board_state, current_player): new_board = Board() new_board.board = board_state player = Player(token=["X", "O"]) assert new_board.current_player(player) == current_player
def test_user_interface_congratulates_winner(): spy = PrinterSpy() user_message = UserMessages(spy) board = Board() board.board = ["X", "O", " ", "X", "O", " ", "X", " ", " "] board.win() user_message.who_won(board) assert spy.printed_item == "X, you're the winner!"
def test_tic_tac_toe_display_board_with_user_token(): new_board = Board() view = CommandLineBoardPresenter() spy = PrinterSpy() new_board.board = ["X", " ", " ", " ", "X", " ", " ", " ", "X"] view.display_board(new_board, spy) expected = """\ X | | -------------- | X | -------------- | | X """ assert spy.printed() == expected
def test_tie_can_detect_a_full_board_with_no_winners(): new_board = Board() new_board.board = ["X", "O", "X", "O", "X", "O", "O", "X", "O"] assert new_board.tie()