修复数据库迁移问题、新增环境变量读写
This commit is contained in:
37
tests/test_db_group.py
Normal file
37
tests/test_db_group.py
Normal 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
|
||||
@@ -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
|
||||
@@ -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'])
|
||||
Reference in New Issue
Block a user