"""
Smoke test for BOT/render_recap.py.

Runs the renderer end-to-end against the live HC storage volume databases
and verifies a PNG lands at the --out path.

Usage:
    source ../SHARED/.venv/bin/activate && python BOT/tests/smoke_recap.py
"""

import subprocess
import sys
import tempfile
from pathlib import Path


def run_smoke(clan_id: int = 123456, season: str = "2026-II") -> int:
    """Run the renderer for a given clan/season; return exit code."""
    with tempfile.TemporaryDirectory() as tmp:
        out = Path(tmp) / "card.png"
        cmd = [
            sys.executable,
            "BOT/render_recap.py",
            "--mode", "squadron",
            "--clan-id", str(clan_id),
            "--season", season,
            "--season-start", "1772348400",
            "--season-end", "1777852799",
            "--out", str(out),
        ]
        print("Running:", " ".join(cmd))
        result = subprocess.run(cmd, capture_output=True, text=True)
        print("stdout:", result.stdout)
        print("stderr:", result.stderr)
        if result.returncode != 0:
            print(f"FAIL: exit={result.returncode}")
            return result.returncode
        if not out.exists():
            print(f"FAIL: {out} does not exist")
            return 1
        if out.stat().st_size == 0:
            print(f"FAIL: {out} is empty")
            return 1
        print(f"OK: wrote {out.stat().st_size} bytes")
        return 0


if __name__ == "__main__":
    code = run_smoke()
    sys.exit(code)
