paper-dynasty-discord/tests/gameplay_models/test_player_model.py
Cal Corum ee80cd72ae fix: apply Black formatting and resolve ruff lint violations
Run Black formatter across 83 files and fix 1514 ruff violations:
- E722: bare except → typed exceptions (17 fixes)
- E711/E712/E721: comparison style fixes with noqa for SQLAlchemy (44 fixes)
- F841: unused variable assignments (70 fixes)
- F541/F401: f-string and import cleanup (1383 auto-fixes)

Remaining 925 errors are all F403/F405 (star imports) — structural,
requires converting to explicit imports in a separate effort.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:37:46 -05:00

78 lines
2.5 KiB
Python

import datetime
import pytest
from sqlmodel import Session
from in_game.gameplay_models import CACHE_LIMIT, Player, player_description, select
from in_game.gameplay_queries import get_player_or_none, get_player_id_from_dict
def test_create_player(session: Session):
all_players = session.exec(select(Player)).all()
assert len(all_players) == 43 # Updated count after adding Player 41
player_1 = session.get(Player, 1)
player_2 = session.get(Player, 12)
assert player_1.name == "Player 0"
assert player_1.cardset_id == 2
assert player_1.pos_1 == "C"
assert player_1.description == "2024"
assert player_1.franchise == "Baltimore Orioles"
assert player_2.cardset_id == 1
assert player_2.description == "Live"
assert player_2.mlbclub == "New York Yankees"
async def test_cached_players(session: Session):
player_1 = session.get(Player, 1)
player_2 = session.get(Player, 69)
assert (datetime.datetime.now() - player_2.created).total_seconds() > CACHE_LIMIT
new_player_1 = await get_player_or_none(session, player_id=player_1.id)
new_player_2 = await get_player_or_none(session, player_id=69)
new_player_3 = await get_player_or_none(session, player_id=6969)
assert player_1.created == new_player_1.created
assert (
datetime.datetime.now() - new_player_2.created
).total_seconds() < CACHE_LIMIT
assert new_player_3 is not None
def test_player_description(session: Session):
player_1 = session.get(Player, 1)
player_2 = session.get(Player, 2)
player_dict = {
"player_id": player_2.id,
"p_name": player_2.name,
"description": player_2.description,
}
assert player_1.name_with_desc == "2024 Player 0"
assert player_description(player_dict=player_dict) == "Live Player 1"
def test_player_id_from_dict(session: Session):
assert get_player_id_from_dict({"player_id": 1337}) == 1337
assert get_player_id_from_dict({"id": 6969}) == 6969
with pytest.raises(KeyError) as exc_info:
get_player_id_from_dict({})
assert (
str(exc_info)
== "<ExceptionInfo KeyError('Player ID could not be extracted from json data') tblen=3>"
)
def test_player_card_link(session: Session):
player_1 = session.get(Player, 70)
assert player_1.batter_card_url == "player_69_battingcard"
assert player_1.pitcher_card_url == "player_69_pitchingcard"
assert player_1.name_card_link("pitching") == "[Player 69](player_69_pitchingcard)"
assert player_1.name_card_link("batting") == "[Player 69](player_69_battingcard)"