mirror of
https://github.com/fastapi/fastapi.git
synced 2026-09-12 21:38:39 -04:00
🐛 Fix exclude_defaults not propagated to dict keys and values in jsonable_encoder (#16043)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
1 parent
4ffd451720
commit
aadfcce763
2 files changed
+16
No files matched your search
@@ -299,6 +299,7 @@ def jsonable_encoder(
|
||||
key,
|
||||
by_alias=by_alias,
|
||||
exclude_unset=exclude_unset,
|
||||
exclude_defaults=exclude_defaults,
|
||||
exclude_none=exclude_none,
|
||||
custom_encoder=custom_encoder,
|
||||
sqlalchemy_safe=sqlalchemy_safe,
|
||||
@@ -307,6 +308,7 @@ def jsonable_encoder(
|
||||
value,
|
||||
by_alias=by_alias,
|
||||
exclude_unset=exclude_unset,
|
||||
exclude_defaults=exclude_defaults,
|
||||
exclude_none=exclude_none,
|
||||
custom_encoder=custom_encoder,
|
||||
sqlalchemy_safe=sqlalchemy_safe,
|
||||
|
||||
@@ -202,6 +202,20 @@ def test_encode_model_with_default():
|
||||
}
|
||||
|
||||
|
||||
def test_encode_model_with_default_in_dict_and_list():
|
||||
model = ModelWithDefault(foo="foo", bar="bar")
|
||||
assert jsonable_encoder([model], exclude_defaults=True) == [{"foo": "foo"}]
|
||||
assert jsonable_encoder({"key": model}, exclude_defaults=True) == {
|
||||
"key": {"foo": "foo"}
|
||||
}
|
||||
assert jsonable_encoder({"key": [model]}, exclude_defaults=True) == {
|
||||
"key": [{"foo": "foo"}]
|
||||
}
|
||||
assert jsonable_encoder({"key": model}) == {
|
||||
"key": {"foo": "foo", "bar": "bar", "bla": "bla"}
|
||||
}
|
||||
|
||||
|
||||
def test_custom_encoders():
|
||||
class safe_datetime(datetime):
|
||||
pass
|
||||
|
||||
Reference in new issue
Block a user