save code

This commit is contained in:
xsl
2026-01-26 08:04:53 +08:00
parent 0895398138
commit e4b59c5ee4
1238 changed files with 95107 additions and 1068 deletions
+151
View File
@@ -0,0 +1,151 @@
import pytest
from httpx import AsyncClient
@pytest.mark.asyncio
@pytest.mark.unit
async def test_login_success(client: AsyncClient, admin_user):
"""测试用户登录成功"""
response = await client.post(
"/api/v1/auth/login",
json={"username": "admin", "password": "admin123"},
)
assert response.status_code == 200
data = response.json()
assert data["success"] is True
assert data["message"] == "登录成功"
assert "token" in data["data"]
assert data["data"]["user"]["username"] == "admin"
assert data["data"]["user"]["role"] == "admin"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_login_wrong_username(client: AsyncClient, admin_user):
"""测试错误的用户名"""
response = await client.post(
"/api/v1/auth/login",
json={"username": "wrong", "password": "admin123"},
)
assert response.status_code == 401
data = response.json()
assert data["success"] is False
assert data["error_code"] == "1002"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_login_wrong_password(client: AsyncClient, admin_user):
"""测试错误的密码"""
response = await client.post(
"/api/v1/auth/login",
json={"username": "admin", "password": "wrong"},
)
assert response.status_code == 401
data = response.json()
assert data["success"] is False
assert data["error_code"] == "1002"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_login_missing_username(client: AsyncClient, admin_user):
"""测试缺少用户名"""
response = await client.post(
"/api/v1/auth/login",
json={"password": "admin123"},
)
assert response.status_code == 400
data = response.json()
assert data["success"] is False
assert data["error_code"] == "1001"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_login_missing_password(client: AsyncClient, admin_user):
"""测试缺少密码"""
response = await client.post(
"/api/v1/auth/login",
json={"username": "admin"},
)
assert response.status_code == 400
data = response.json()
assert data["success"] is False
assert data["error_code"] == "1001"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_login_inactive_user(client: AsyncClient, inactive_user):
"""测试未激活用户登录"""
response = await client.post(
"/api/v1/auth/login",
json={"username": "inactive", "password": "inactive123"},
)
assert response.status_code == 401
data = response.json()
assert data["success"] is False
@pytest.mark.asyncio
@pytest.mark.unit
async def test_get_current_user_success(client: AsyncClient, admin_token: str):
"""测试获取当前用户信息成功"""
response = await client.get(
"/api/v1/auth/me",
headers={"Authorization": f"Bearer {admin_token}"},
)
assert response.status_code == 200
data = response.json()
assert data["success"] is True
assert data["data"]["username"] == "admin"
assert data["data"]["role"] == "admin"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_get_current_user_no_token(client: AsyncClient):
"""测试未提供token获取用户信息"""
response = await client.get("/api/v1/auth/me")
assert response.status_code == 401
data = response.json()
assert data["success"] is False
@pytest.mark.asyncio
@pytest.mark.unit
async def test_get_current_user_invalid_token(client: AsyncClient):
"""测试无效token获取用户信息"""
response = await client.get(
"/api/v1/auth/me",
headers={"Authorization": "Bearer invalid_token"},
)
assert response.status_code == 401
data = response.json()
assert data["success"] is False
assert data["error_code"] == "1003"
@pytest.mark.asyncio
@pytest.mark.unit
async def test_logout_success(client: AsyncClient, admin_token: str):
"""测试登出成功"""
response = await client.post(
"/api/v1/auth/logout",
headers={"Authorization": f"Bearer {admin_token}"},
)
assert response.status_code == 200
data = response.json()
assert data["success"] is True
assert data["message"] == "登出成功"