Browse Source

Merge fa4b7c843c into 313723494b

pull/4972/merge
Salim Aboubacar 1 day ago
committed by GitHub
parent
commit
deacc9b1a0
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      fastapi/encoders.py
  2. 7
      tests/test_jsonable_encoder.py

2
fastapi/encoders.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",

7
tests/test_jsonable_encoder.py

@ -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():

Loading…
Cancel
Save