Files
disknext/tests/test_db_user.py
于小丘 69f852a4ce
Some checks failed
Test / test (push) Failing after 1m4s
fix: align all 212 tests with current API and add CI workflows
Update integration tests to match actual endpoint responses: remove
data wrappers, use snake_case fields, correct HTTP methods (PUT→POST
for directory create), status codes (200→204 for mutations), and
request formats (params→json for 2FA). Fix root-level and unit tests
for DatabaseManager migration, model CRUD patterns, and JWT setup.
Add GitHub Actions and Gitea CI configs with ubuntu-latest + Python 3.13.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:21:40 +08:00

51 lines
1.5 KiB
Python
Raw 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.
"""
用户模型 CRUD 测试(使用 db_session fixture
"""
import pytest
from sqlmodel.ext.asyncio.session import AsyncSession
from sqlmodels.group import Group
from sqlmodels.user import User
@pytest.mark.asyncio
async def test_user_curd(db_session: AsyncSession):
"""测试数据库的增删改查"""
# 新建一个测试用户组
test_user_group = Group(name='test_user_group')
created_group = await test_user_group.save(db_session)
test_user = User(
email='test_user@test.local',
group_id=created_group.id
)
# 测试增 Create
created_user = await test_user.save(db_session)
# 验证用户是否存在
assert created_user.id is not None
assert created_user.email == 'test_user@test.local'
assert created_user.group_id == created_group.id
# 测试查 Read
fetched_user = await User.get(db_session, User.id == created_user.id)
assert fetched_user is not None
assert fetched_user.email == 'test_user@test.local'
assert fetched_user.group_id == created_group.id
# 测试改 Update
from sqlmodels.user import UserBase
update_data = UserBase(email="updated_user@test.local")
updated_user = await fetched_user.update(db_session, update_data)
assert updated_user is not None
assert updated_user.email == 'updated_user@test.local'
# 测试删除 Delete
await User.delete(db_session, instances=updated_user)
deleted_user = await User.get(db_session, User.id == updated_user.id)
assert deleted_user is None