@@ -1104,6 +1104,10 @@ def test_no_warn_on_exclude() -> None:
1104
1104
1105
1105
1106
1106
def test_warn_on_missing_field () -> None :
1107
+ class AModel (BasicModel ): ...
1108
+
1109
+ class BModel (BasicModel ): ...
1110
+
1107
1111
s = SchemaSerializer (
1108
1112
core_schema .model_schema (
1109
1113
BasicModel ,
@@ -1113,7 +1117,7 @@ def test_warn_on_missing_field() -> None:
1113
1117
core_schema .tagged_union_schema (
1114
1118
choices = {
1115
1119
'a' : core_schema .model_schema (
1116
- BasicModel ,
1120
+ AModel ,
1117
1121
core_schema .model_fields_schema (
1118
1122
{
1119
1123
'type' : core_schema .model_field (core_schema .literal_schema (['a' ])),
@@ -1122,7 +1126,7 @@ def test_warn_on_missing_field() -> None:
1122
1126
),
1123
1127
),
1124
1128
'b' : core_schema .model_schema (
1125
- BasicModel ,
1129
+ BModel ,
1126
1130
core_schema .model_fields_schema (
1127
1131
{
1128
1132
'type' : core_schema .model_field (core_schema .literal_schema (['b' ])),
@@ -1139,9 +1143,9 @@ def test_warn_on_missing_field() -> None:
1139
1143
)
1140
1144
)
1141
1145
1142
- value = BasicModel (root = BasicModel (type = 'a' , a = 1 ))
1146
+ value = BasicModel (root = AModel (type = 'a' )) # missing 'a' field
1143
1147
with pytest .warns (
1144
1148
UserWarning ,
1145
- match = 'Expected 2 fields but got 1 for field root of type `BasicModel` with value .+' ,
1149
+ match = 'Expected 2 fields but got 1 for field root of type.+' ,
1146
1150
):
1147
1151
assert s .to_python (value ) == {'root' : {'type' : 'a' }}
0 commit comments