import datetime from sqlmodel import Session, select from in_game.gameplay_models import Team, CACHE_LIMIT from in_game.gameplay_queries import get_team_or_none from tests.factory import session_fixture, pytest def test_create_team(session: Session): team_31 = session.get(Team, 31) team_400 = session.get(Team, 400) team_69 = session.get(Team, 69) team_420 = session.get(Team, 420) team_3 = session.get(Team, 3) assert team_31.abbrev == 'NCB' assert team_400.abbrev == 'WV' assert team_69.abbrev == 'NCB3' assert team_420.abbrev == 'WV4' assert team_3.abbrev == 'BAL' def test_create_incomplete_team(session: Session): team_1 = Team( id=446, abbrev='CLS', sname='Macho Men', lname='Columbus Macho Men', gmid=181818, gmname='Mason Socc', gsheet='asdf1234', wallet=6969, team_value=69420, collection_value=169420, color='https://i.postimg.cc/8kLZCYXh/S10CLS.png', season=7, event=False, career=0 ) session.add(team_1) with pytest.raises(Exception) as exc_info: session.commit() assert str(exc_info) == "" async def test_team_cache(session: Session): team_31 = session.get(Team, 31) team_3 = session.get(Team, 3) assert (datetime.datetime.now() - team_3.created).total_seconds() > CACHE_LIMIT new_team_31 = await get_team_or_none(session, team_id=team_31.id) new_team_3 = await get_team_or_none(session, team_id=team_3.id) new_team_4 = await get_team_or_none(session, team_abbrev='NYY') assert team_31.created == new_team_31.created assert (datetime.datetime.now() - new_team_3.created).total_seconds() < CACHE_LIMIT assert new_team_4.created is not None