Allow passing json_encoders in class kwargs (#2523)

* Test that `json_encoders` are respected from class kwargs

* Allow passing `json_encoders` in class kwargs

Fixes #2521.
This commit is contained in:
layday
2021-05-11 17:03:51 +03:00
committed by GitHub
parent 17eb82cd50
commit 0bfc930274
3 changed files with 9 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
Allow passing `json_encoders` in class kwargs
+1
View File
@@ -184,6 +184,7 @@ def inherit_config(self_config: 'ConfigType', parent_config: 'ConfigType', **nam
namespace['json_encoders'] = {
**getattr(parent_config, 'json_encoders', {}),
**getattr(self_config, 'json_encoders', {}),
**namespace.get('json_encoders', {}),
}
return type('Config', base_classes, namespace)
+7
View File
@@ -1997,6 +1997,13 @@ def test_class_kwargs_config():
assert Model.__fields__['b'].alias == 'B' # alias_generator still works
def test_class_kwargs_config_json_encoders():
class Model(BaseModel, json_encoders={int: str}):
pass
assert Model.__config__.json_encoders == {int: str}
def test_class_kwargs_config_and_attr_conflict():
with pytest.raises(