if exclude is not None and not isinstance(exclude, set):
exclude = set(exclude)
if isinstance(obj, BaseModel):
- encoder = getattr(obj.Config, "json_encoders", {})
+ encoder = getattr(obj.__config__, "json_encoders", {})
if custom_encoder:
encoder.update(custom_encoder)
if PYDANTIC_1:
}
+class ModelWithCustomEncoderSubclass(ModelWithCustomEncoder):
+ class Config:
+ pass
+
+
class RoleEnum(Enum):
admin = "admin"
normal = "normal"
assert jsonable_encoder(model) == {"dt_field": "2019-01-01T08:00:00+00:00"}
+def test_encode_custom_json_encoders_model_subclass():
+ model = ModelWithCustomEncoderSubclass(dt_field=datetime(2019, 1, 1, 8))
+ assert jsonable_encoder(model) == {"dt_field": "2019-01-01T08:00:00+00:00"}
+
+
def test_encode_model_with_config():
model = ModelWithConfig(role=RoleEnum.admin)
assert jsonable_encoder(model) == {"role": "admin"}