65 lines
2.5 KiB
Python
65 lines
2.5 KiB
Python
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_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
|
|
|
|
|
|
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
|