Пример #1
0
def test_game_draw_with_no_players():
    # given
    expected_msg = "^Cannot draw because there are no players$"

    # when and then
    game = Game()
    with pytest.raises(errors.WordylibError, match=expected_msg):
        game.draw()
Пример #2
0
def test_game_get_total_scores_before_adding_any_player():
    # when
    game = Game()
    result = game.get_total_scores()

    # then
    expected = {}
    assert result == expected
Пример #3
0
def test_game_add_player():
    # given
    player = "Davide"
    expected = {player}

    # when
    game = Game()
    game.add_player(player=player)
    result = game.players

    # then
    assert result == expected
Пример #4
0
def test_game_get_total_scores_before_playing_any_round():
    # given
    player = "Davide"

    # when
    game = Game()
    game.add_player(player=player)
    result = game.get_total_scores()

    # then
    expected = {"Davide": 0}
    assert result == expected
Пример #5
0
def test_game_add_player_multiple_times():
    # given
    player1 = "Davide"
    player2 = "Cherry"
    expected = {player1, player2}

    # when
    game = Game()
    game.add_player(player=player1)
    game.add_player(player=player2)
    result = game.players

    # then
    assert result == expected
Пример #6
0
def test_game_current_round_before_starting_playing():
    # given

    # when and then
    game = Game()
    expected_msg = "^Game has not started yet, draw first$"
    with pytest.raises(errors.WordylibError, match=expected_msg):
        game.current_round
Пример #7
0
def test_game_submit_solution_overusing_drawn_letters(solution):
    # given
    random.seed(100)
    player = "Davide"

    # when and then
    game = Game()
    game.add_player(player=player)
    game.draw()
    expected_msg = r"^Some letters were used too many times \(.*\)$"
    with pytest.raises(errors.InvalidSubmission, match=expected_msg):
        game.submit(player=player, solution=solution)
Пример #8
0
def test_game_draw():
    # given
    random.seed(100)

    # when
    game = Game()
    game.add_player(player="Davide")
    result = game.draw()

    # then
    expected = {
        "D": {
            "count": 1,
            "points": 1
        },
        "I": {
            "count": 3,
            "points": 1
        },
        "S": {
            "count": 2,
            "points": 1
        },
        "R": {
            "count": 2,
            "points": 1
        },
        "M": {
            "count": 1,
            "points": 1
        },
        "A": {
            "count": 2,
            "points": 1
        },
        "U": {
            "count": 1,
            "points": 1
        },
    }
    assert result == expected
Пример #9
0
def test_game_add_player_same_player_twice():
    # given
    player = "Davide"

    # when and then
    game = Game()
    game.add_player(player=player)
    expected_msg = "^Davide is already playing$"
    with pytest.raises(ValueError, match=expected_msg):
        game.add_player(player=player)
Пример #10
0
def test_game_submit_solution_without_anyone_playing():
    # given
    player = "Davide"
    solution = [[]]

    # when and then
    game = Game()
    game.add_player(player=player)
    expected_msg = "^Game has not started yet, draw first$"
    with pytest.raises(errors.WordylibError, match=expected_msg):
        game.submit(player=player, solution=solution)
Пример #11
0
def test_game_current_round_after_playing_a_round():
    # given
    expected = 1

    # when
    game = Game()
    game.add_player(player="Davide")
    game.draw()
    result = game.current_round

    # then
    assert result == expected
Пример #12
0
def two_round_game():
    random.seed(100)
    player1 = "Davide"
    player2 = "Cherry"

    game = Game()
    game.add_player(player=player1)
    game.add_player(player=player2)
    game.draw()
    game.submit(
        player=player2,
        solution=[["A", "r", "I", "A"], [" ", "I", " ", " "],
                  [" ", "M", "U", "D"]],
    )
    game.draw()
    game.submit(player=player2, solution=[["S", "O"]])
    return game