You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.2 KiB

from fastapi import FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel, Field
app = FastAPI()
class ResponseModel(BaseModel):
code: int = 200
message: str = Field(default_factory=lambda: "Successful operation.")
@app.get(
"/response_model_has_default_factory_return_dict",
response_model=ResponseModel,
)
async def response_model_has_default_factory_return_dict():
return {"code": 200}
@app.get(
"/response_model_has_default_factory_return_model",
response_model=ResponseModel,
)
async def response_model_has_default_factory_return_model():
return ResponseModel()
client = TestClient(app)
def test_response_model_has_default_factory_return_dict():
response = client.get("/response_model_has_default_factory_return_dict")
assert response.status_code == 200, response.text
assert response.json()["code"] == 200
assert response.json()["message"] == "Successful operation."
def test_response_model_has_default_factory_return_model():
response = client.get("/response_model_has_default_factory_return_model")
assert response.status_code == 200, response.text
assert response.json()["code"] == 200
assert response.json()["message"] == "Successful operation."