Files
information-sign-backend/tests/test_users.py
chenpanliang 3a5cc50d02 feat: 初始化FastAPI项目基础框架
添加项目基础结构,包括:
- 核心模块(src/main.py)
- 路由模块(users/items)
- 数据库配置和模型
- 日志工具
- 测试用例
- 项目文档和依赖配置
2025-12-15 11:34:24 +08:00

92 lines
2.3 KiB
Python

import pytest
from fastapi.testclient import TestClient
from src.main import app
client = TestClient(app)
def test_create_user():
response = client.post(
"/users/",
json={
"email": "test@example.com",
"first_name": "Test",
"last_name": "User",
"password": "testpassword"
}
)
assert response.status_code == 201
data = response.json()
assert data["email"] == "test@example.com"
assert "id" in data
def test_read_users():
response = client.get("/users/")
assert response.status_code == 200
data = response.json()
assert isinstance(data, list)
def test_read_user():
# First create a user
response = client.post(
"/users/",
json={
"email": "test2@example.com",
"first_name": "Test2",
"last_name": "User2",
"password": "testpassword"
}
)
assert response.status_code == 201
user_id = response.json()["id"]
# Then read the user
response = client.get(f"/users/{user_id}")
assert response.status_code == 200
data = response.json()
assert data["id"] == user_id
def test_update_user():
# First create a user
response = client.post(
"/users/",
json={
"email": "test3@example.com",
"first_name": "Test3",
"last_name": "User3",
"password": "testpassword"
}
)
assert response.status_code == 201
user_id = response.json()["id"]
# Then update the user
response = client.put(
f"/users/{user_id}",
json={
"email": "updated@example.com",
"first_name": "Updated",
"last_name": "User",
"password": "updatedpassword"
}
)
assert response.status_code == 200
data = response.json()
assert data["email"] == "updated@example.com"
def test_delete_user():
# First create a user
response = client.post(
"/users/",
json={
"email": "test4@example.com",
"first_name": "Test4",
"last_name": "User4",
"password": "testpassword"
}
)
assert response.status_code == 201
user_id = response.json()["id"]
# Then delete the user
response = client.delete(f"/users/{user_id}")
assert response.status_code == 204