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