paper-dynasty-discord/tests/gameplay_models/test_card_model.py
2024-10-14 20:46:55 -05:00

63 lines
1.8 KiB
Python

import datetime
from sqlmodel import Session
from in_game.gameplay_models import CACHE_LIMIT, Card, Player, Team, select, get_card_or_none
from in_game.gameplay_queries import get_or_create_ai_card
from factory import session_fixture
def test_create_card(session: Session):
all_cards = session.exec(select(Card)).all()
assert len(all_cards) == 41
card_1 = session.get(Card, 1)
card_2 = session.get(Card, 12)
assert card_1.player_id == 1
assert card_1.team_id == 31
assert card_2.player_id == 12
assert card_2.team_id == 400
async def test_get_or_create_ai_card(session: Session):
cached_card = session.get(Card, 1)
assert cached_card.player_id == 1
assert cached_card.team_id == 31
this_player = session.get(Player, 1)
this_team = session.get(Team, 31)
new_card_1 = await get_or_create_ai_card(session, this_player, this_team)
assert cached_card.created == new_card_1.created
new_card_2 = await get_or_create_ai_card(
session,
player=session.get(Player, 30),
team=this_team,
dev_mode=True
)
assert new_card_2.id == 42
async def test_get_card_or_none(session: Session):
card_1 = session.get(Card, 1)
new_card_1 = await get_card_or_none(session, card_id=card_1.id)
assert card_1.created == new_card_1.created
assert session.get(Player, 538) is None
assert session.get(Team, 55) is None
new_card_2 = await get_card_or_none(session, card_id=55555)
print(f'new_card_2: {new_card_2}\nplayer: {new_card_2.player}\nteam: {new_card_2.team}')
assert new_card_2 is not None
assert new_card_2.player_id == 538
assert new_card_2.team_id == 55
assert session.get(Player, 538) is not None
assert session.get(Team, 55) is not None