from pathlib import Path def test_readiness_gate_treats_deprecation_warnings_as_errors() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "run_readiness_check.sh" content = script.read_text(encoding="utf-8") assert "-W error::DeprecationWarning" in content def test_readiness_gate_runs_contract_smoke() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "run_readiness_check.sh" content = script.read_text(encoding="utf-8") assert "scripts/smoke_contracts.py" in content def test_readiness_gate_checks_demo_export_workflow_script_syntax() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "run_readiness_check.sh" content = script.read_text(encoding="utf-8") assert "bash -n scripts/verify_demo_export_workflow.sh" in content def test_readiness_gate_runs_golden_qa_benchmark() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "run_readiness_check.sh" content = script.read_text(encoding="utf-8") assert "scripts/run_golden_qa_benchmark.py --json" in content assert "bash -n scripts/verify_golden_qa_benchmark.sh" in content def test_readiness_gate_compiles_demo_cleanup_script() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "run_readiness_check.sh" content = script.read_text(encoding="utf-8") assert "-m py_compile scripts/cleanup_demo_artifacts.py" in content assert "-m py_compile backend/scripts/cleanup_demo_artifacts.py" in content def test_readiness_gate_compiles_yolo_preflight_script() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "run_readiness_check.sh" content = script.read_text(encoding="utf-8") assert "-m py_compile scripts/yolo_preflight.py" in content assert "-m py_compile backend/scripts/yolo_preflight.py" in content def test_demo_export_workflow_script_verifies_export_endpoints() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "verify_demo_export_workflow.sh" content = script.read_text(encoding="utf-8") assert "/api/v1/demo/workflow" in content assert "/areas" in content assert "/datasets" in content assert "/content" in content assert "/vector/summary" in content assert "GeoJSON Polygon/MultiPolygon geometry" in content assert "precision" in content assert "false_negative_count" in content assert "/api/v1/exports/metadata" in content assert "/api/v1/exports/report" in content assert "/api/v1/exports/geojson" in content assert "/download" in content def test_pass_end_check_excludes_vendor_and_build_outputs() -> None: script = Path(__file__).resolve().parents[2] / "scripts" / "codex_pass_end_check.sh" content = script.read_text(encoding="utf-8") assert "--exclude-dir=node_modules" in content assert "--exclude-dir=dist" in content assert "--exclude-dir=__pycache__" in content