Тест сверяет имена и упорядоченные значения с блоками Enum {} DBML через pydbml.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
25 lines
1012 B
Python
25 lines
1012 B
Python
"""Поиск и разбор 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)
|