Files
geMoldInsight/tests/test_deployment_config.py
2026-09-16 17:55:04 +08:00

38 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""批次 1 部署治理回归测试。
覆盖:
- AUTO_MIGRATE 开关:env 解析与默认值(默认 true 保持现行启动行为)
- create_admin_user:ADMIN_PASSWORD 未配置时显式报错,不创建空口令管理员
"""
import pytest
from unittest.mock import MagicMock
from shared.config.settings import Settings
def test_auto_migrate_default_true(monkeypatch):
"""未配置时默认 true:保持既有单机开发行为(启动即迁移)。"""
monkeypatch.delenv("AUTO_MIGRATE", raising=False)
assert Settings().AUTO_MIGRATE is True
def test_auto_migrate_env_parsing(monkeypatch):
monkeypatch.setenv("AUTO_MIGRATE", "false")
assert Settings().AUTO_MIGRATE is False
monkeypatch.setenv("AUTO_MIGRATE", "true")
assert Settings().AUTO_MIGRATE is True
@pytest.mark.asyncio
async def test_create_admin_without_password_is_explicit_error(monkeypatch):
"""ADMIN_PASSWORD 缺失必须显式失败(compose 已去弱默认),而非静默创建空口令管理员。"""
# init_db 顶层 import alembic;未安装 alembic 的环境跳过(与 OCC 测试同策略)
pytest.importorskip("alembic.config")
from shared.config.settings import settings
from shared.database.init_db import create_admin_user
monkeypatch.setattr(settings, "ADMIN_PASSWORD", None)
# 校验发生在任何 DB 访问之前,MagicMock 会话不会被触碰
with pytest.raises(RuntimeError, match="ADMIN_PASSWORD"):
await create_admin_user(MagicMock())