Coverage for tests / test_datetime_custom_encoder.py: 100%
20 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
« prev ^ index » next coverage.py v7.13.3, created at 2026-04-06 01:24 +0000
1from datetime import datetime, timezone 1efgh
3from fastapi import FastAPI 1efgh
4from fastapi.testclient import TestClient 1efgh
5from pydantic import BaseModel 1efgh
8def test_pydanticv2(): 1efgh
9 from pydantic import field_serializer 1adbc
11 class ModelWithDatetimeField(BaseModel): 1adbc
12 dt_field: datetime 1abc
14 @field_serializer("dt_field") 1adbc
15 def serialize_datetime(self, dt_field: datetime): 1adbc
16 return dt_field.replace(microsecond=0, tzinfo=timezone.utc).isoformat() 1adbc
18 app = FastAPI() 1adbc
19 model = ModelWithDatetimeField(dt_field=datetime(2019, 1, 1, 8)) 1adbc
21 @app.get("/model", response_model=ModelWithDatetimeField) 1adbc
22 def get_model(): 1adbc
23 return model 1adbc
25 client = TestClient(app) 1adbc
26 with client: 1adbc
27 response = client.get("/model") 1adbc
28 assert response.json() == {"dt_field": "2019-01-01T08:00:00+00:00"} 1adbc