def test_queue_multiple_map_pools(queue_factory, rating, low1, high1, low2, high2): queue = queue_factory() map_pool1 = MapPool(0, "pool1") map_pool2 = MapPool(1, "pool2") queue.add_map_pool(map_pool1, low1, high1) queue.add_map_pool(map_pool2, low2, high2) if low1 <= rating <= high1: assert queue.get_map_pool_for_rating(rating) is map_pool1 elif low2 <= rating <= high2: assert queue.get_map_pool_for_rating(rating) is map_pool2 else: assert queue.get_map_pool_for_rating(rating) is None
def test_queue_map_pools_bound(queue_factory, rating, low, high): queue = queue_factory() map_pool = MapPool(0, "pool") queue.add_map_pool(map_pool, low, high) if low <= rating <= high: assert queue.get_map_pool_for_rating(rating) is map_pool else: assert queue.get_map_pool_for_rating(rating) is None
def test_queue_map_pools_upper_bound(queue_factory, rating, high): queue = queue_factory() map_pool = MapPool(0, "pool") queue.add_map_pool(map_pool, None, high) if rating > high: assert queue.get_map_pool_for_rating(rating) is None else: assert queue.get_map_pool_for_rating(rating) is map_pool
def test_queue_map_pools_lower_bound(queue_factory, rating, low): queue = queue_factory() map_pool = MapPool(0, "pool") queue.add_map_pool(map_pool, low, None) if rating < low: assert queue.get_map_pool_for_rating(rating) is None else: assert queue.get_map_pool_for_rating(rating) is map_pool
async def test_start_game_start_spots(ladder_service: LadderService, game_service: GameService, queue_factory, monkeypatch, team1, team2): queue = queue_factory("test_3v3", mod="faf", team_size=3, rating_type=RatingType.GLOBAL) queue.add_map_pool(MapPool(1, "test", [Map(1, "scmp_007", "maps/scmp_007.zip")]), min_rating=None, max_rating=None) monkeypatch.setattr(LadderGame, "wait_hosted", CoroutineMock()) monkeypatch.setattr(LadderGame, "wait_launched", CoroutineMock()) await ladder_service.start_game(team1, team2, queue) game = game_service[game_service.game_id_counter] def get_start_spot(player_id) -> int: return game.get_player_option(player_id, "StartSpot") assert get_start_spot(1) == get_start_spot(2) - 1 assert get_start_spot(3) == get_start_spot(4) - 1 assert get_start_spot(5) == get_start_spot(6) - 1
def make(map_pool_id=0, name="Test Pool", maps=()): return MapPool(map_pool_id=map_pool_id, name=name, maps=maps)
def test_queue_map_pools_any_range(queue_factory, rating): queue = queue_factory() map_pool = MapPool(0, "pool") queue.add_map_pool(map_pool, None, None) assert queue.get_map_pool_for_rating(rating) is map_pool