paper-dynasty-discord/tests/test_gameplay_db_team.py
2024-10-12 18:21:15 -05:00

57 lines
1.5 KiB
Python

import datetime
from sqlmodel import Session, select
from sqlite3 import IntegrityError
from in_game.gameplay_models import Team, get_team
from factory import session_fixture, new_teams_fixture, pytest
def test_create_team(session: Session, new_teams: list[Team]):
team_1 = new_teams[0]
team_2 = new_teams[1]
session.add(team_1)
session.add(team_2)
session.commit()
assert team_1.abbrev == 'NCB'
assert team_1.id == 31
assert team_2.abbrev == 'WV'
assert team_2.id == 400
def test_create_incomplete_team(session: Session, new_teams: list[Team]):
team_1 = new_teams[2]
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, new_teams: list[Team]):
team_1 = new_teams[0]
team_2 = new_teams[1]
team_3 = new_teams[3]
session.add(team_1)
session.add(team_2)
session.add(team_3)
session.commit()
assert (datetime.datetime.now() - team_3.created).total_seconds() > 1209600
new_team_1 = await get_team(session, team_id=team_1.id)
new_team_2 = await get_team(session, team_id=team_2.id)
new_team_3 = await get_team(session, team_abbrev='BAL')
assert team_1.created == new_team_1.created
assert team_2.created == new_team_2.created
assert (datetime.datetime.now() - new_team_3.created).total_seconds() < 1209600