feat: 统一生产初始化流程并保护系统管理员

This commit is contained in:
Cheng Zhou
2026-03-27 17:17:32 +08:00
parent f2f856ea24
commit a67991740e
14 changed files with 492 additions and 10 deletions
+42
View File
@@ -0,0 +1,42 @@
import pytest
from app.crud import user as user_crud
from app.models.user import UserRole, UserStatus
class _ScalarResult:
def __init__(self, value):
self._value = value
def scalar_one_or_none(self):
return self._value
class _FakeSession:
def __init__(self, existing_admin=None):
self.existing_admin = existing_admin
self.added = []
self.commit_count = 0
async def execute(self, _stmt):
return _ScalarResult(self.existing_admin)
def add(self, obj):
self.added.append(obj)
async def commit(self):
self.commit_count += 1
@pytest.mark.asyncio
async def test_ensure_admin_exists_creates_protected_admin():
session = _FakeSession()
await user_crud.ensure_admin_exists(session)
assert len(session.added) == 1
admin = session.added[0]
assert admin.email == "admin@huapont.cn"
assert admin.role == UserRole.ADMIN
assert admin.status == UserStatus.ACTIVE
assert session.commit_count == 1