"""Contract tests for candidates-payload.schema.json.""" from __future__ import annotations import json from pathlib import Path import jsonschema from src.runtime.candidate.parser import build_candidates_payload from src.runtime.core.config import create_schema_registry, load_schema def test_candidates_payload_against_reference_articles(): schema = load_schema("candidates-payload.schema.json") registry = create_schema_registry() validator = jsonschema.Draft202012Validator(schema, registry=registry) ref_dir = Path("evals/reference_20") for art_file in ref_dir.glob("article_*.json"): article_data = json.loads(art_file.read_text(encoding="utf-8")) payload = build_candidates_payload(article_data) errors = list(validator.iter_errors(payload)) assert len(errors) == 0, ( f"Payload for {art_file.name} failed schema: {[e.message for e in errors]}" )