core/tests/test_workbench_schemas.py

40 lines
1.2 KiB
Python

from __future__ import annotations
from workbench.schemas import RuntimeStatus, SafetyVerdict, error, ok
def test_ok_envelope_contains_generated_at_and_data() -> None:
payload = ok(RuntimeStatus(
backend="numpy",
git_revision="abc123",
engine_state_present=False,
checkpoint_revision="unknown",
revision_warning=False,
active_session_id=None,
))
assert payload["ok"] is True
assert isinstance(payload["generated_at"], str)
assert payload["data"]["backend"] == "numpy"
assert payload["data"]["mutation_mode"] == "read_only"
def test_error_envelope_contains_generated_at_and_code() -> None:
payload = error("not_found", "missing")
assert payload["ok"] is False
assert isinstance(payload["generated_at"], str)
assert payload["error"] == {"code": "not_found", "message": "missing"}
def test_safety_verdict_values_and_json_projection() -> None:
assert {item.value for item in SafetyVerdict} == {
"clear",
"warning",
"failed",
"unknown",
}
payload = ok({"verdict": SafetyVerdict.WARNING})
assert payload["data"] == {"verdict": "warning"}