mtg_python_deckbuilder/code/tests/test_random_theme_stats_diagnostics.py

37 lines
No EOL
1.1 KiB
Python

import sys
from pathlib import Path
from fastapi.testclient import TestClient
from code.web import app as web_app
from code.web.app import app
# Ensure project root on sys.path for absolute imports
ROOT = Path(__file__).resolve().parents[2]
if str(ROOT) not in sys.path:
sys.path.insert(0, str(ROOT))
def _make_client() -> TestClient:
return TestClient(app)
def test_theme_stats_requires_diagnostics_flag(monkeypatch):
monkeypatch.setattr(web_app, "SHOW_DIAGNOSTICS", False)
client = _make_client()
resp = client.get("/status/random_theme_stats")
assert resp.status_code == 404
def test_theme_stats_payload_includes_core_fields(monkeypatch):
monkeypatch.setattr(web_app, "SHOW_DIAGNOSTICS", True)
client = _make_client()
resp = client.get("/status/random_theme_stats")
assert resp.status_code == 200
payload = resp.json()
assert payload.get("ok") is True
stats = payload.get("stats") or {}
assert "commanders" in stats
assert "unique_tokens" in stats
assert "total_assignments" in stats
assert isinstance(stats.get("top_tokens"), list)