67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
SCRIPT = ROOT / "scripts" / "verify_1c_moxel_schema_registry.py"
|
|
SPEC = importlib.util.spec_from_file_location("verify_1c_moxel_schema_registry", SCRIPT)
|
|
assert SPEC and SPEC.loader
|
|
verify = importlib.util.module_from_spec(SPEC)
|
|
SPEC.loader.exec_module(verify)
|
|
|
|
|
|
def registry() -> dict:
|
|
return {
|
|
"schema": "codex_1c_moxel_schema_registry.v1",
|
|
"rules": [
|
|
{
|
|
"id": "inline_text_column_from_last_preceding_scalar_plus_one",
|
|
"target": "moxel.inline_text_cell.column",
|
|
"read_status": "verified_read",
|
|
},
|
|
{
|
|
"id": "named_left",
|
|
"target": "moxel.named_range.left",
|
|
"read_status": "candidate_read",
|
|
"raw_scalar_indexes": [2, 4],
|
|
},
|
|
],
|
|
}
|
|
|
|
|
|
def probe(column: int = 2) -> dict:
|
|
return {
|
|
"probe": {
|
|
"cells": [
|
|
{"text": "10-2", "one_based": {"row": 10, "column": column}},
|
|
],
|
|
"named_ranges": [
|
|
{
|
|
"name": "R7C2_TEST",
|
|
"kind": "named_cell_or_range",
|
|
"range": {"one_based": {"left": 4, "right": 4, "top": 8, "bottom": 8}},
|
|
"raw_scalars": ["1", "3", "3", "7", "3", "7", "00000000-0000-0000-0000-000000000000", "0"],
|
|
}
|
|
],
|
|
}
|
|
}
|
|
|
|
|
|
def test_verify_registry_accepts_matching_verified_read_probe() -> None:
|
|
report = verify.verify_registry(registry(), [probe()])
|
|
|
|
assert report["status"] == "ok"
|
|
inline = next(item for item in report["results"] if item["target"] == "moxel.inline_text_cell.column")
|
|
assert inline["verification_status"] == "ok"
|
|
named = next(item for item in report["results"] if item["target"] == "moxel.named_range.left")
|
|
assert named["verification_status"] == "ok"
|
|
|
|
|
|
def test_verify_registry_fails_when_verified_read_probe_mismatches() -> None:
|
|
report = verify.verify_registry(registry(), [probe(column=99)])
|
|
|
|
assert report["status"] == "failed"
|
|
assert report["counts"]["verified_read_failures"] == 1
|