修复数据库迁移问题、新增环境变量读写

This commit is contained in:
2025-07-15 17:32:00 +08:00
parent dc522a8e93
commit 33cca4e271
10 changed files with 432 additions and 39 deletions

37
tests/test_db_group.py Normal file
View File

@@ -0,0 +1,37 @@
import pytest
@pytest.mark.asyncio
async def test_group_curd():
"""测试数据库的增删改查"""
from models import database
from models.group import Group
await database.init_db(url='sqlite:///:memory:')
# 测试增 Create
test_group = Group(name='test_group')
created_group = await Group.create(test_group)
assert created_group is not None
assert created_group.id is not None
assert created_group.name == 'test_group'
# 测试查 Read
fetched_group = await Group.get(id=created_group.id)
assert fetched_group is not None
assert fetched_group.id == created_group.id
assert fetched_group.name == 'test_group'
# 测试更新 Update
updated_group = await Group.set(
id=fetched_group.id,
name='updated_group')
assert updated_group is not None
assert updated_group.id == fetched_group.id
assert updated_group.name == 'updated_group'
# 测试删除 Delete
await Group.delete(id=updated_group.id)
deleted_group = await Group.get(id=updated_group.id)
assert deleted_group is None

View File

@@ -10,8 +10,8 @@ async def test_user_curd():
await database.init_db(url='sqlite:///:memory:')
# 新建一个测试用户组
test_group = Group(name='test_group')
created_group = await Group.create(test_group)
test_user_group = Group(name='test_user_group')
created_group = await Group.create(test_user_group)
test_user = User(
email='test_user',
@@ -36,4 +36,19 @@ async def test_user_curd():
assert fetched_user.password == 'test_password'
assert fetched_user.group_id == created_group.id
# 测试改 Update
# 测试改 Update
updated_user = await User.update(
id=fetched_user.id,
email='updated_user',
password='updated_password'
)
assert updated_user is not None
assert updated_user.email == 'updated_user'
assert updated_user.password == 'updated_password'
# 测试删除 Delete
await User.delete(id=updated_user.id)
deleted_user = await User.get(id=updated_user.id)
assert deleted_user is None

View File

@@ -4,10 +4,18 @@ from main import app
client = TestClient(app)
def is_valid_instance_id(instance_id):
"""Check if a string is a valid UUID4."""
import uuid
try:
uuid.UUID(instance_id, version=4)
except (ValueError, TypeError):
assert False, f"instance_id is not a valid UUID4: {instance_id}"
def test_read_main():
from pkg.conf.appmeta import BackendVersion
import uuid
response = client.get("/api/site/ping")
json_response = response.json()
@@ -17,7 +25,14 @@ def test_read_main():
assert json_response['data'] == BackendVersion
assert json_response['msg'] is None
assert 'instance_id' in json_response
try:
uuid.UUID(json_response['instance_id'], version=4)
except (ValueError, TypeError):
assert False, f"instance_id is not a valid UUID4: {json_response['instance_id']}"
is_valid_instance_id(json_response['instance_id'])
response = client.get("/api/site/config")
json_response = response.json()
assert response.status_code == 200
assert json_response['code'] == 0
assert json_response['data'] is not None
assert json_response['msg'] is None
assert 'instance_id' in json_response
is_valid_instance_id(json_response['instance_id'])