File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -203,6 +203,29 @@ def test_include_exclude_args(params):
203
203
assert json .loads (s .to_json (value , include = include , exclude = exclude )) == expected
204
204
205
205
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
+
206
229
def test_alias ():
207
230
s = SchemaSerializer (
208
231
core_schema .model_schema (
You can’t perform that action at this time.
0 commit comments