from __future__ import annotations import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[2] sys.path.insert(0, str(ROOT / "scripts")) from resolve_1c_fact import load_json, resolve_from_snapshot # noqa: E402 SNAPSHOT = ROOT / "plugins" / "1c" / "metadata" / "examples" / "metadata.example.json" def resolve(member: str | None = None, *, table_section: str | None = None) -> dict: return resolve_from_snapshot( load_json(SNAPSHOT), snapshot_path=SNAPSHOT, kind="Справочник", object_name="Номенклатура", member=member, area="any", table_section=table_section, view="effective", extension=None, ) def test_object_result_has_canonical_path() -> None: result = resolve() assert result["exists"] is True assert result["object"]["canonical_path"] == "Справочник.Номенклатура" assert result["match"]["canonical_path"] == "Справочник.Номенклатура" assert result["match"]["path_kind"] == "metadata_object" def test_attribute_result_has_canonical_path() -> None: result = resolve("Артикул") assert result["exists"] is True assert result["match"]["canonical_path"] == "Справочник.Номенклатура.Артикул" assert result["match"]["path_kind"] == "metadata_member" def test_tabular_section_attribute_has_context_path() -> None: result = resolve("Цена", table_section="Цены") assert result["exists"] is True assert result["match"]["canonical_path"] == "Справочник.Номенклатура.Цены.Цена" assert result["match"]["context_path"] == "Цены.Цена" assert result["match"]["path_kind"] == "metadata_member"