def test_player_reaches_objective_increase_score(): """ Tests that the score on a player is increased once he reaches an objective """ board = Mock() turns = Mock() turns.is_action_possible.return_value = True board.move.return_value = True game = Game(identifier=0, board=board, turns=turns) player_id = game.unused_player_id() game.add_player(Player(player_id)) old_score = game.get_player(player_id).score game.move(player_id, BoardLocation(0, 1)) assert game.get_player(player_id).score == old_score + 1
def test_move_does_not_raise_error_after_shift(): """ Tests turn validation """ board = Mock() turns = Mock() turns.is_action_possible.return_value = True game = Game(identifier=0, board=board, turns=turns) player_id = game.unused_player_id() game.add_player(Player(player_id)) game.start_game() player = game.get_player(player_id) game.move(player_id, BoardLocation(0, 0)) board.move.assert_called_once() turns.is_action_possible.assert_called_once_with(player, PlayerAction.MOVE_ACTION)
def test_add_get_player(): """ Tests add_player and get_player """ game = Game(identifier=0) player = Player(7) game.add_player(player) assert game.get_player(7) is player
def test_get_player_raises_exception_for_unknown_id(): """ Tests get_player """ game = Game(identifier=0) with pytest.raises(PlayerNotFoundException): game.get_player(0)