42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
"""Contract tests for ecp-snapshot.schema.json and local referencing.Registry resolution."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from src.runtime.ecp.adapter import validate_ecp_snapshot
|
|
|
|
|
|
def test_ecp_snapshot_schema_valid():
|
|
sample_ecp = {
|
|
"target_entity_id": "Q12345",
|
|
"target_name": "Club Atlético River Plate",
|
|
"aliases": ["River", "El Millonario", "CARP"],
|
|
"domain": "sports",
|
|
"anchors": ["Monumental", "Buenos Aires", "Copa Libertadores"],
|
|
"negative_anchors": ["River Plate Uruguay"],
|
|
"graph_version": "1.0.0",
|
|
"related_entities": [
|
|
{
|
|
"entity_id": "Q54321",
|
|
"name": "Boca Juniors",
|
|
"relation_type": "rival",
|
|
"weight": 0.9,
|
|
"aliases": ["Xeneize"],
|
|
"scope": "derby",
|
|
"confidence": 1.0,
|
|
}
|
|
],
|
|
}
|
|
|
|
validate_ecp_snapshot(sample_ecp)
|
|
|
|
|
|
def test_ecp_snapshot_invalid_schema():
|
|
invalid_ecp = {
|
|
"target_name": "Missing target entity id",
|
|
"domain": "sports",
|
|
}
|
|
with pytest.raises(ValueError, match="ECP Snapshot schema validation failed"):
|
|
validate_ecp_snapshot(invalid_ecp)
|