Initial SQL-only 1C adapter baseline
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
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
|
||||
Reference in New Issue
Block a user