paper-dynasty-discord/tests/gameplay_models/test_team_model.py
2024-11-03 21:53:40 -06:00

53 lines
1.8 KiB
Python

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) == "<ExceptionInfo IntegrityError('(sqlite3.IntegrityError) NOT NULL constraint failed: team.ranking') tblen=24>"
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