FastAPI 입문
Matt Eckerle
Software and Data Engineering Leader
def test_main():
response = main()
assert response == {"msg": "Hello"}
def test_read_main():
response = client.get("/")
assert response.status_code == 200
assert response.json() == {"msg":
"Hello"}
TestClient: pytest용 HTTP 클라이언트
# TestClient와 app 임포트 from fastapi.testclient import TestClient from .main import app # 애플리케이션 컨텍스트로 테스트 클라이언트 생성 client = TestClient(app)def test_main(): response = client.get("/") assert response.status_code == 200 assert response.json() == {"msg": "Hello"}
app = FastAPI()
@app.delete("/items")
def delete_item(item: Item):
if item.id not in item_ids:
raise HTTPException(
status_code=404,
detail="Item not found.")
else:
delete_item_in_database(item)
return {}
def test_delete_nonexistent_item():
response = client.delete(
"/items",
json={"id": -999})
assert response.status_code == 404
json = response.json()
assert json == {"detail":
"Item not found."}
FastAPI 입문