"""Поиск каталога реальных данных `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)" )