fix(task): reject unknown validation status payloads
This commit is contained in:
@ -70,10 +70,12 @@ class ValidationResult:
|
|||||||
if not isinstance(payload, dict):
|
if not isinstance(payload, dict):
|
||||||
return None
|
return None
|
||||||
raw_status = payload.get("status")
|
raw_status = payload.get("status")
|
||||||
status: ValidationStatus | None = raw_status if raw_status in VALIDATION_STATUSES else None
|
if "status" in payload and raw_status not in VALIDATION_STATUSES:
|
||||||
|
raise ValueError(f"unknown validation status: {raw_status}")
|
||||||
|
status: ValidationStatus | None = raw_status if "status" in payload else None
|
||||||
return cls(
|
return cls(
|
||||||
status=status,
|
status=status,
|
||||||
passed=bool(payload.get("passed")) if status is None else None,
|
passed=bool(payload.get("passed")) if "status" not in payload else None,
|
||||||
score=float(payload.get("score", 0.0) or 0.0),
|
score=float(payload.get("score", 0.0) or 0.0),
|
||||||
issues=[str(item) for item in payload.get("issues") or []],
|
issues=[str(item) for item in payload.get("issues") or []],
|
||||||
missing_requirements=[str(item) for item in payload.get("missing_requirements") or []],
|
missing_requirements=[str(item) for item in payload.get("missing_requirements") or []],
|
||||||
|
|||||||
@ -439,6 +439,11 @@ def test_validation_result_rejects_unknown_status() -> None:
|
|||||||
ValidationResult(status="pending", score=0.9, validator="test") # type: ignore[arg-type]
|
ValidationResult(status="pending", score=0.9, validator="test") # type: ignore[arg-type]
|
||||||
|
|
||||||
|
|
||||||
|
def test_validation_result_from_dict_rejects_unknown_explicit_status() -> None:
|
||||||
|
with pytest.raises(ValueError, match="unknown validation status"):
|
||||||
|
ValidationResult.from_dict({"status": "pending", "passed": True, "score": 0.9})
|
||||||
|
|
||||||
|
|
||||||
def test_validation_result_evidence_gaps_round_trip() -> None:
|
def test_validation_result_evidence_gaps_round_trip() -> None:
|
||||||
validation = ValidationResult(
|
validation = ValidationResult(
|
||||||
status="insufficient_evidence",
|
status="insufficient_evidence",
|
||||||
|
|||||||
Reference in New Issue
Block a user