"""Предусловия сквозных тестов (Срез 2c, tasks 5.1): сервис tabular-parser из профиля `services` compose. Без него e2e не имеет смысла (результат распознавания даёт реальный парсер): тест пропускается с причиной, а `make check-full` без профиля остаётся зелёным. NATS, MinIO и PostgreSQL берутся из `.env.test` (инфраструктура compose `make up`); профиль поднимается командой из README («Сквозной прогон (e2e)»). """ import httpx import pytest TABULAR_PARSER_HEALTHCHECK = "http://localhost:8001/healthcheck" HEALTHCHECK_TIMEOUT = 2.0 SKIP_REASON = "профиль services не поднят" @pytest.fixture(scope="session") def tabular_parser_ready() -> None: """`GET localhost:8001/healthcheck` отвечает 200 и `nats=ok`, иначе — skip «профиль services не поднят».""" try: response = httpx.get(TABULAR_PARSER_HEALTHCHECK, timeout=HEALTHCHECK_TIMEOUT) ready = response.status_code == httpx.codes.OK and response.json().get("nats") == "ok" except (httpx.HTTPError, ValueError): ready = False if not ready: pytest.skip(f"{SKIP_REASON}: {TABULAR_PARSER_HEALTHCHECK} недоступен или без подключения к NATS")