🐛 Fix jsonable_encoder for models with Config (#29)

but without json_encoders
This commit is contained in:
Sebastián Ramírez
2019-02-12 21:43:34 +04:00
committed by GitHub
parent 92c825be6a
commit 9745a5d1ae
3 changed files with 45 additions and 14 deletions

View File

@@ -0,0 +1,34 @@
from datetime import datetime, timezone
from fastapi import FastAPI
from pydantic import BaseModel
from starlette.testclient import TestClient
class ModelWithDatetimeField(BaseModel):
dt_field: datetime
class Config:
json_encoders = {
datetime: lambda dt: dt.replace(
microsecond=0, tzinfo=timezone.utc
).isoformat()
}
app = FastAPI()
model = ModelWithDatetimeField(dt_field=datetime(2019, 1, 1, 8))
@app.get("/model", response_model=ModelWithDatetimeField)
def get_model():
return model
client = TestClient(app)
def test_dt():
with client:
response = client.get("/model")
assert response.json() == {"dt_field": "2019-01-01T08:00:00+00:00"}