import json from importlib.resources import files from pathlib import Path from jsonschema import Draft202012Validator SCHEMA_NAMES = ( "external-job-source.schema.json", "school-employment.schema.json", "school-internship.schema.json", ) def test_packaged_schemas_match_canonical_demo_contracts() -> None: canonical_directory = Path(__file__).resolve().parents[2] / "demo" / "schemas" for name in SCHEMA_NAMES: canonical = json.loads((canonical_directory / name).read_text()) packaged = json.loads( files("edu_crawler.schemas").joinpath(name).read_text(encoding="utf-8") ) assert packaged == canonical Draft202012Validator.check_schema(packaged)