- app.py: create_app(settings), SMB-сессия только при SCAN_HOTFOLDER_MODE=smb, без SPA/CORS/РАИСА/nkeys; /healthcheck отдаёт uptime и version - config.py: ENV_FILE, get_settings() с lru_cache, параметры горячих папок/NATS, блок OPENBAO__SMB необязателен, валидация режимов local/smb; убраны DBSettings и OPENBAO.DATABASE - exception_handlers.py: убрана зависимость от sqlalchemy - requirements.txt: убраны asyncpg, SQLAlchemy, alembic, argon2-cffi(+bindings), raisa_*, greenlet, Mako - api/.env.example: минимальный local-режим против compose; unit-тесты config/app Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
"""Общие фикстуры. Минимальное окружение local-режима задаётся здесь, чтобы `import src` (он создаёт приложение)
|
|
работал без `.env.test` и без инфраструктуры; значения можно переопределить переменными окружения."""
|
|
import os
|
|
|
|
import pytest
|
|
|
|
_MINIMAL_ENV = {
|
|
"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_MODE": "local",
|
|
"SCAN_HOTFOLDER_PATH": "/tmp/scan-gateway-test-hotfolder",
|
|
}
|
|
for _key, _value in _MINIMAL_ENV.items():
|
|
os.environ.setdefault(_key, _value)
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def _fresh_settings():
|
|
"""get_settings кэшируется (lru_cache): сбрасываем кэш до и после каждого теста."""
|
|
from src.core.config import get_settings
|
|
|
|
get_settings.cache_clear()
|
|
yield
|
|
get_settings.cache_clear()
|