Срез 0: скелет ядра — ORM и миграция 0001 по DBML v5.13, seed, auth с dev-эмитентом, обмен через recognition_job #3

Merged
aep merged 97 commits from feat/1-slice-0-skeleton into main 2026-10-04 18:40:48 +03:00
Showing only changes of commit e432c1c542 - Show all commits

View File

@ -29,10 +29,34 @@ def test_env_test_is_read(clean_env: pytest.MonkeyPatch) -> None:
def test_defaults(clean_env: pytest.MonkeyPatch) -> None:
"""Значения по умолчанию: claim email и параметры outbox."""
s = Settings(_env_file=API_DIR / ".env.test") # type: ignore[call-arg]
"""Значения по умолчанию классов настроек: env-файла нет, заданы только обязательные OPENBAO__*."""
required = {
"OPENBAO__DATABASE__DATABASE_URL": "postgresql+asyncpg://u:p@localhost:5432/d",
"OPENBAO__MINIO__MINIO_URL": "localhost:9000",
"OPENBAO__MINIO__MINIO_ADMIN_LOGIN": "login",
"OPENBAO__MINIO__MINIO_ADMIN_PASSWORD": "password",
"OPENBAO__MINIO__MINIO_BUCKET": "bucket",
"OPENBAO__NATS__NATS_URL": "nats://localhost:4222",
"OPENBAO__SMB__SMB_HOST": "host",
"OPENBAO__SMB__SMB_PATH": "path",
"OPENBAO__SMB__SMB_LOGIN": "login",
"OPENBAO__SMB__SMB_PASSWORD": "password",
}
for key, value in required.items():
clean_env.setenv(key, value)
s = Settings(_env_file=None) # type: ignore[call-arg]
assert s.DEBUG is False
assert s.AUTH_DEV_ISSUER is False
assert s.AUTH_DEV_SECRET == ""
assert s.AUTH_JWKS_URL == ""
assert s.AUTH_PUBLIC_KEY == ""
assert s.AUTH_ISSUER == ""
assert s.AUTH_AUDIENCE == ""
assert s.AUTH_EMAIL_CLAIM == "email"
assert s.NATS_ENABLED is False
assert (s.OUTBOX_POLL_SECONDS, s.ACK_TIMEOUT_SECONDS, s.OUTBOX_MAX_REPUBLISH) == (5, 30, 3)
assert s.OPENBAO.NATS.NATS_SEED == ""
assert s.OPENBAO.NATS.NATS_JWT == ""
def test_empty_nats_seed_and_jwt_allowed(clean_env: pytest.MonkeyPatch) -> None: