示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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)
示例#5
0
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)
示例#6
0
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
示例#7
0
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)
示例#8
0
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
示例#9
0
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!"
示例#10
0
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
示例#11
0
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()