def test_remove_player(fill_players): with test_session_scope() as ts: assert reset_session_squad(session_id=API_SESSION_ID, dbsession=ts) assert add_session_player(12, API_SESSION_ID, ts) assert remove_session_player(12, API_SESSION_ID, ts) players = get_session_players(API_SESSION_ID, ts) assert len(players) == 0
def test_invalid_session_squad(fill_players): with test_session_scope() as ts: reset_session_squad(session_id=API_SESSION_ID, dbsession=ts) assert not validate_session_squad(API_SESSION_ID, ts) # add one player - check it is still invalid assert add_session_player(5, API_SESSION_ID, ts) assert not validate_session_squad(API_SESSION_ID, ts)
def test_add_player_by_name(fill_players): """ Should be able to add a player with string argument """ with test_session_scope() as ts: t = Squad() added_ok = t.add_player("Alice", season=TEST_SEASON, dbsession=ts) assert added_ok
def test_add_player_by_id(fill_players): """ Should be able to add a player with integer argument """ with test_session_scope() as ts: t = Squad() added_ok = t.add_player(50, season=TEST_SEASON, dbsession=ts) assert added_ok
def test_cant_add_same_player_twice(fill_players): with test_session_scope() as ts: assert reset_session_squad(session_id=API_SESSION_ID, dbsession=ts) assert add_session_player(33, API_SESSION_ID, ts) assert not add_session_player(33, API_SESSION_ID, ts) players = get_session_players(API_SESSION_ID, ts) assert len(players) == 1 assert players[0]["id"] == 33
def test_get_player(fill_players): """ test we can get a player object from either a name or an id """ with test_session_scope() as tsession: p = get_player("Bob", tsession) assert isinstance(p, Player) assert p.player_id == 1
def test_list_all_players(fill_players): with test_session_scope() as ts: player_list = list_players_teams_prices(dbsession=ts, gameweek=1) assert isinstance(player_list, list) assert len(player_list) > 0 first_player = player_list[0] # test the format of the returned strings assert re.search("[a-zA-Z\s]+\([A-Z]{3}\)\: [\d\.]+", first_player)
def test_reset_session_squad(): with test_session_scope() as ts: assert reset_session_squad(session_id=API_SESSION_ID, dbsession=ts) st = ts.query(SessionSquad).filter_by(session_id=API_SESSION_ID).all() assert len(st) == 0 sb = ts.query(SessionBudget).filter_by(session_id=API_SESSION_ID).all() assert len(sb) == 1 assert sb[0].budget == 1000 assert get_session_budget(API_SESSION_ID, ts) == 1000
def test_cant_add_too_many_per_squad(fill_players): """ no more than three from the same squad. """ with test_session_scope() as ts: t = Squad() assert t.add_player(1, season=TEST_SEASON, dbsession=ts) assert t.add_player(21, season=TEST_SEASON, dbsession=ts) assert t.add_player(41, season=TEST_SEASON, dbsession=ts) assert not t.add_player(61, season=TEST_SEASON, dbsession=ts)
def test_cant_add_same_player(fill_players): """ can't add a player thats already on the squad. """ with test_session_scope() as ts: t = Squad() added_ok = t.add_player(1, season=TEST_SEASON, dbsession=ts) assert added_ok added_ok = t.add_player(1, season=TEST_SEASON, dbsession=ts) assert not added_ok
def test_remove_player(fill_players): """ add a player then remove them. """ with test_session_scope() as ts: t = Squad() t.add_player(1, season=TEST_SEASON, dbsession=ts) assert len(t.players) == 1 assert t.num_position["GK"] == 1 t.remove_player(1, season=TEST_SEASON, use_api=False, dbsession=ts) assert len(t.players) == 0 assert t.num_position["GK"] == 0 assert t.budget == 1000
def test_cant_add_too_many_per_position(fill_players): """ no more than two keepers, 5 defenders, 5 midfielders, 3 forwards. """ with test_session_scope() as ts: t = Squad() # keepers assert t.add_player("Alice", season=TEST_SEASON, dbsession=ts) assert t.add_player("Bob", season=TEST_SEASON, dbsession=ts) assert not t.add_player("Pedro", season=TEST_SEASON, dbsession=ts) # defenders assert t.add_player("Carla", season=TEST_SEASON, dbsession=ts) assert t.add_player("Donald", season=TEST_SEASON, dbsession=ts) assert t.add_player("Erica", season=TEST_SEASON, dbsession=ts) assert t.add_player("Frank", season=TEST_SEASON, dbsession=ts) assert t.add_player("Gerry", season=TEST_SEASON, dbsession=ts) assert not t.add_player("Stefan", season=TEST_SEASON, dbsession=ts)
def test_cant_exceed_budget(): """ try and make an expensive squad """ with test_session_scope() as ts: t = Squad() added_ok = True added_ok = added_ok and t.add_player( 45, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 46, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 47, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 48, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 49, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 50, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 51, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 52, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 53, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 54, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 55, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 56, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 57, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 58, season=TEST_SEASON, dbsession=ts) added_ok = added_ok and t.add_player( 59, season=TEST_SEASON, dbsession=ts) assert not added_ok
def test_valid_session_squad(fill_players): with test_session_scope() as ts: reset_session_squad(API_SESSION_ID, ts) for pid in range(15): assert add_session_player(pid, API_SESSION_ID, ts) assert validate_session_squad(API_SESSION_ID, ts)
def test_set__get_budget(): with test_session_scope() as ts: assert reset_session_squad(session_id=API_SESSION_ID, dbsession=ts) assert set_session_budget(500, API_SESSION_ID, ts) assert get_session_budget(API_SESSION_ID, ts) == 500
def test_get_player_id(fill_players): """ Should be able to find a player with string argument """ with test_session_scope() as tsession: assert get_player_id("Bob", tsession) == 1
def test_get_player_name(fill_players): """ Should be able to find a player with integer argument """ with test_session_scope() as tsession: assert get_player_name(1, tsession) == "Bob"