import pytest from sqlmodel import Session, select, func from in_game.gameplay_models import Game, RosterLink from in_game.gameplay_queries import get_available_subs from tests.factory import session_fixture def test_get_rosterlinks(session: Session): game_1 = session.get(Game, 1) g1_links = session.exec(select(RosterLink).where(RosterLink.game == game_1)).all() assert len(g1_links) == 20 home_team = game_1.home_team home_roster = session.exec(select(RosterLink).where(RosterLink.game == game_1, RosterLink.team == home_team)).all() assert len(home_roster) == 10 def test_get_available_subs(session: Session): this_game = session.get(Game, 3) home_team = this_game.home_team home_roster = session.exec(select(RosterLink).where(RosterLink.game == this_game, RosterLink.team == home_team)).all() assert len(home_roster) == 12 # Updated count after adding more cards to factory cards = get_available_subs(session, this_game, this_game.home_team) assert len(cards) == 2 # Updated count: cards 41 and 70 are available subs