""" 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 .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)