from __future__ import annotations import json import os import subprocess from pathlib import Path ROOT = Path(__file__).resolve().parents[1] def test_offline_smoke_script_reports_missing_model_failure() -> None: env = os.environ.copy() env.pop("P5_MEMORY_QUILT_PRIMARY_MODEL_PATH", None) env.pop("P5_MEMORY_QUILT_FALLBACK_MODEL_PATH", None) env.pop("P5_FLUX_MODEL_DIR", None) proc = subprocess.run( ["bash", "scripts/offline_smoke.sh"], cwd=ROOT, env=env, capture_output=True, text=True, check=False, ) assert proc.returncode != 0 payload = json.loads(proc.stdout.strip()) assert payload["repo"] == "all4-p5-memory-quilt" assert payload["project"] == "p5" assert payload["kind"] == "smoke" assert payload["passed"] is False assert payload["network"] == "blocked" assert "local checkpoint" in payload["error"].lower()