File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -206,7 +206,7 @@ impl GeneralFieldsSerializer {
206206
207207 if extra. check . enabled ( )
208208 // If any of these are true we can't count fields
209- && !( extra. exclude_defaults || extra. exclude_unset || extra. exclude_none )
209+ && !( extra. exclude_defaults || extra. exclude_unset || extra. exclude_none || exclude . is_some ( ) )
210210 // Check for missing fields, we can't have extra fields here
211211 && self . required_fields > used_req_fields
212212 {
Original file line number Diff line number Diff line change 11import dataclasses
22import json
33import platform
4+ import warnings
45from random import randint
56from typing import Any , ClassVar , Dict
67
@@ -1080,3 +1081,23 @@ class Model:
10801081 m .__pydantic_extra__ = {'extra' : 'extra' }
10811082
10821083 assert s .to_python (m ) == {'extra' : 'extra bam!' }
1084+
1085+
1086+ def test_no_warn_on_exclude () -> None :
1087+ warnings .simplefilter ('error' )
1088+
1089+ s = SchemaSerializer (
1090+ core_schema .model_schema (
1091+ BasicModel ,
1092+ core_schema .model_fields_schema (
1093+ {
1094+ 'a' : core_schema .model_field (core_schema .int_schema ()),
1095+ 'b' : core_schema .model_field (core_schema .int_schema ()),
1096+ }
1097+ ),
1098+ )
1099+ )
1100+
1101+ value = BasicModel (a = 0 , b = 1 )
1102+ assert s .to_python (value , exclude = {'b' }) == {'a' : 0 }
1103+ assert s .to_python (value , mode = 'json' , exclude = {'b' }) == {'a' : 0 }
You can’t perform that action at this time.
0 commit comments