import pytest from sqlalchemy import delete as sadelete from sqlmodel import Session, delete from in_game.gameplay_models import Game, Lineup, GameCardsetLink, select from in_game.gameplay_queries import get_channel_game_or_none, get_active_games_by_team from factory import session_fixture def test_create_game(session: Session): game_1 = session.get(Game, 1) game_2 = session.get(Game, 2) assert game_1.away_team_id == 31 assert game_1.home_team_id == 400 assert game_1.channel_id == 1234 assert game_1.season == 9 assert game_1.active == True assert game_1.is_pd == True assert game_1.ranked == False assert game_1.week_num == None assert game_1.game_num == None assert game_1.away_roster_id == None assert game_1.home_roster_id == None assert game_1.first_message == None assert game_1.ai_team == 'away' assert game_1.game_type == None assert game_2.active == False assert game_2.is_pd == True assert game_2.ranked == True assert game_2.week_num == 6 assert game_2.game_num == 9 assert game_2.away_roster_id == 69 assert game_2.home_roster_id == 420 assert game_2.first_message == '12345678' assert game_2.ai_team == 'home' assert game_2.game_type == 'minor-league' def test_select_all(session: Session): games = session.exec(select(Game)).all() assert len(games) == 3 session.execute(sadelete(Game)) session.commit() games = session.exec(select(Game)).all() assert len(games) == 0 def test_games_by_channel(session: Session): assert get_channel_game_or_none(session, 1234) is not None assert get_channel_game_or_none(session, 5678) is not None assert get_channel_game_or_none(session, 69) is None game_2 = session.get(Game, 2) game_2.active = True session.add(game_2) session.commit() with pytest.raises(LookupError) as exc_info: get_channel_game_or_none(session, 5678) assert str(exc_info) == "" game_3 = session.get(Game, 3) game_2.active = False game_3.active = False session.add(game_2) session.add(game_3) session.commit() assert get_channel_game_or_none(session, 5678) is None def test_games_by_team(session: Session): assert len(get_active_games_by_team(session, team_id=69)) == 1 game_2 = session.get(Game, 2) game_2.active = True session.add(game_2) session.commit() assert len(get_active_games_by_team(session, team_id=69)) == 2 game_3 = session.get(Game, 3) game_3.active = False game_2.active = False session.add(game_3) session.add(game_2) session.commit() assert len(get_active_games_by_team(session, team_id=69)) == 0 def test_delete_game(session: Session): game_1 = session.get(Game, 1) # session.execute(sadelete(GameCardsetLink).where(GameCardsetLink.game == game_1)) # session.delete(game_1) session.delete(game_1) bad_lineups = session.exec(select(Lineup).where(Lineup.game_id == 1)).all() bad_links = session.exec(select(GameCardsetLink).where(GameCardsetLink.game_id == 1)).all() assert len(bad_lineups) == 0 assert len(bad_links) == 0