53 lines
1.8 KiB
Python
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
|
|
|
|
|
|
|
|
|
|
|