feat: 初始化FastAPI项目基础框架
添加项目基础结构,包括: - 核心模块(src/main.py) - 路由模块(users/items) - 数据库配置和模型 - 日志工具 - 测试用例 - 项目文档和依赖配置
This commit is contained in:
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
92
tests/test_users.py
Normal file
92
tests/test_users.py
Normal file
@@ -0,0 +1,92 @@
|
||||
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
|
||||
Reference in New Issue
Block a user