@@ -778,3 +778,27 @@ class MyModel:
778
778
assert s .to_python (m ) == {'field_a' : b'test' , 'field_b' : 12 , 'field_c' : 'extra' }
779
779
assert s .to_python (m , mode = 'json' ) == {'field_a' : 'test' , 'field_b' : 12 , 'field_c' : 'extra' }
780
780
assert s .to_json (m ) == b'{"field_a":"test","field_b":12,"field_c":"extra"}'
781
+
782
+ # test filtering
783
+ m = v .validate_python ({'field_a' : b'test' , 'field_b' : 12 , 'field_c' : None , 'field_d' : [1 , 2 , 3 ]})
784
+ assert isinstance (m , MyModel )
785
+ assert m .__dict__ == {'field_a' : b'test' , 'field_b' : 12 }
786
+ assert m .__pydantic_extra__ == {'field_c' : None , 'field_d' : [1 , 2 , 3 ]}
787
+ assert m .__pydantic_fields_set__ == {'field_a' , 'field_b' , 'field_c' , 'field_d' }
788
+
789
+ assert s .to_python (m ) == {'field_a' : b'test' , 'field_b' : 12 , 'field_c' : None , 'field_d' : [1 , 2 , 3 ]}
790
+ assert s .to_json (m ) == b'{"field_a":"test","field_b":12,"field_c":null,"field_d":[1,2,3]}'
791
+
792
+ assert s .to_python (m , exclude_none = True ) == {'field_a' : b'test' , 'field_b' : 12 , 'field_d' : [1 , 2 , 3 ]}
793
+ assert s .to_json (m , exclude_none = True ) == b'{"field_a":"test","field_b":12,"field_d":[1,2,3]}'
794
+
795
+ assert s .to_python (m , exclude = {'field_c' }) == {'field_a' : b'test' , 'field_b' : 12 , 'field_d' : [1 , 2 , 3 ]}
796
+ assert s .to_json (m , exclude = {'field_c' }) == b'{"field_a":"test","field_b":12,"field_d":[1,2,3]}'
797
+
798
+ assert s .to_python (m , exclude = {'field_d' : [0 ]}) == {
799
+ 'field_a' : b'test' ,
800
+ 'field_b' : 12 ,
801
+ 'field_c' : None ,
802
+ 'field_d' : [2 , 3 ],
803
+ }
804
+ assert s .to_json (m , exclude = {'field_d' : [0 ]}) == b'{"field_a":"test","field_b":12,"field_c":null,"field_d":[2,3]}'
0 commit comments