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>
78 lines
2.5 KiB
Python
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)"
|