Skip to content

Commit 2ac82ca

Browse files
committed
Update tests
1 parent a7d272b commit 2ac82ca

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

tests/serializers/test_model.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,29 @@ def test_include_exclude_args(params):
203203
assert json.loads(s.to_json(value, include=include, exclude=exclude)) == expected
204204

205205

206+
def test_exclude_if():
207+
s = SchemaSerializer(
208+
core_schema.model_schema(
209+
BasicModel,
210+
core_schema.model_fields_schema(
211+
{
212+
'a': core_schema.model_field(core_schema.int_schema(), exclude_if=lambda x: x > 1),
213+
'b': core_schema.model_field(core_schema.str_schema(), exclude_if=lambda x: 'foo' in x),
214+
}
215+
),
216+
)
217+
)
218+
assert s.to_python(BasicModel(a=0, b='bar')) == {'a': 0, 'b': 'bar'}
219+
assert s.to_python(BasicModel(a=2, b='bar')) == {'b': 'bar'}
220+
assert s.to_python(BasicModel(a=0, b='foo')) == {'a': 0}
221+
assert s.to_python(BasicModel(a=2, b='foo')) == {}
222+
223+
assert s.to_json(BasicModel(a=0, b='bar')) == b'{"a":0,"b":"bar"}'
224+
assert s.to_json(BasicModel(a=2, b='bar')) == b'{"b":"bar"}'
225+
assert s.to_json(BasicModel(a=0, b='foo')) == b'{"a":0}'
226+
assert s.to_json(BasicModel(a=2, b='foo')) == b'{}'
227+
228+
206229
def test_alias():
207230
s = SchemaSerializer(
208231
core_schema.model_schema(

0 commit comments

Comments
 (0)