Salim Aboubacar
1 day ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
6 additions and
3 deletions
-
fastapi/encoders.py
-
tests/test_jsonable_encoder.py
|
|
@ -219,7 +219,7 @@ def jsonable_encoder( |
|
|
|
if not PYDANTIC_V2: |
|
|
|
encoders = getattr(obj.__config__, "json_encoders", {}) # type: ignore[attr-defined] |
|
|
|
if custom_encoder: |
|
|
|
encoders.update(custom_encoder) |
|
|
|
encoders = {**encoders, **custom_encoder} |
|
|
|
obj_dict = _model_dump( |
|
|
|
obj, |
|
|
|
mode="json", |
|
|
|
|
|
@ -216,9 +216,12 @@ def test_custom_encoders(): |
|
|
|
instance = MyModel(dt_field=safe_datetime.now()) |
|
|
|
|
|
|
|
encoded_instance = jsonable_encoder( |
|
|
|
instance, custom_encoder={safe_datetime: lambda o: o.isoformat()} |
|
|
|
instance, custom_encoder={safe_datetime: lambda o: o.strftime("%H:%M:%S")} |
|
|
|
) |
|
|
|
assert encoded_instance["dt_field"] == instance.dt_field.isoformat() |
|
|
|
assert encoded_instance["dt_field"] == instance.dt_field.strftime("%H:%M:%S") |
|
|
|
|
|
|
|
encoded_instance2 = jsonable_encoder(instance) |
|
|
|
assert encoded_instance2["dt_field"] == instance.dt_field.isoformat() |
|
|
|
|
|
|
|
|
|
|
|
def test_custom_enum_encoders(): |
|
|
|