feat(runtime): implement single-article consolidation runtime and modularize codebase
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
"""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]}"
|
||||
)
|
||||
Reference in New Issue
Block a user