37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
"""Общие фикстуры. Окружение тестов — `api/.env.test`: его подключает pytest.ini (`ENV_FILE=.env.test`, путь от
|
||
каталога api/), поэтому `import src` (он создаёт приложение) работает без своей настройки окружения
|
||
и без инфраструктуры."""
|
||
|
||
import pytest
|
||
|
||
|
||
@pytest.fixture(autouse=True)
|
||
def _fresh_settings():
|
||
"""get_settings кэшируется (lru_cache): сбрасываем кэш до и после каждого теста."""
|
||
# Импорт отложен намеренно: `import src` создаёт приложение и читает окружение
|
||
from src.core.config import get_settings # noqa: PLC0415
|
||
|
||
get_settings.cache_clear()
|
||
yield
|
||
get_settings.cache_clear()
|
||
|
||
|
||
@pytest.fixture
|
||
def minimal_env_file(tmp_path, monkeypatch):
|
||
"""Env-файл только с обязательными настройками (без `.env.test`): для проверки значений по умолчанию."""
|
||
env_file = tmp_path / "minimal.env"
|
||
env_file.write_text(
|
||
"\n".join(
|
||
[
|
||
"OPENBAO__MINIO__MINIO_URL=localhost:9000",
|
||
"OPENBAO__MINIO__MINIO_ADMIN_LOGIN=minioadmin",
|
||
"OPENBAO__MINIO__MINIO_ADMIN_PASSWORD=minioadmin",
|
||
"OPENBAO__MINIO__MINIO_BUCKET=arm-ka",
|
||
"OPENBAO__NATS__NATS_URL=nats://localhost:4222",
|
||
"SCAN_HOTFOLDER_PATH=/tmp/scan-gateway-test-hotfolder",
|
||
]
|
||
)
|
||
)
|
||
monkeypatch.setenv("ENV_FILE", str(env_file))
|
||
return env_file
|