29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
"""Поиск каталога реальных данных `fixtures` (соседний репозиторий workspace) для тестов с маркером `fixtures`."""
|
||
|
||
import os
|
||
from pathlib import Path
|
||
|
||
FIXTURES_ENV = "ARM_KA_FIXTURES"
|
||
|
||
|
||
def resolve_fixtures_dir() -> Path:
|
||
"""Каталог fixtures: `ARM_KA_FIXTURES`, иначе соседний `../../fixtures` относительно `arm-core/api`.
|
||
|
||
Не проверяет существование: это делает вызывающий код (пропуск теста с причиной).
|
||
"""
|
||
explicit = os.environ.get(FIXTURES_ENV)
|
||
if explicit:
|
||
return Path(explicit)
|
||
return Path(__file__).resolve().parents[3] / "fixtures"
|
||
|
||
|
||
def fixtures_skip_reason() -> str | None:
|
||
"""Причина пропуска тестов с маркером `fixtures` или `None`, если каталог доступен."""
|
||
path = resolve_fixtures_dir()
|
||
if path.is_dir():
|
||
return None
|
||
return (
|
||
f"ARM_KA_FIXTURES недоступен: нет каталога {path} "
|
||
f"(задайте {FIXTURES_ENV} или положите fixtures рядом с arm-core)"
|
||
)
|