"""Поиск и разбор DBML-модели для тестов (переиспользуется тестами чётности ORM и DBML).""" import os from pathlib import Path import pytest from pydbml import PyDBML DBML_FILE_NAME = "data-model-v5.13.dbml" def dbml_path() -> Path: """Путь к DBML: каталог docs из `ARM_KA_DOCS`, иначе соседний `../../docs` относительно `arm-core/api`.""" docs = os.environ.get("ARM_KA_DOCS") docs_dir = Path(docs) if docs else Path(__file__).resolve().parents[3] / "docs" return docs_dir / "model" / DBML_FILE_NAME def load_dbml() -> PyDBML: """Разобрать DBML через pydbml; без файла — пропуск теста с явной причиной.""" path = dbml_path() if not path.is_file(): pytest.skip(f"docs недоступен: нет {path} (задайте ARM_KA_DOCS или положите docs рядом с arm-core)") return PyDBML.parse_file(path)