MCPcopy
hub / github.com/pydantic/pydantic / test_parse_nested_root_tuple

Function test_parse_nested_root_tuple

tests/test_parse.py:170–203  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

168
169@pytest.mark.filterwarnings('ignore:`parse_obj_as` is deprecated.*:DeprecationWarning')
170def test_parse_nested_root_tuple():
171 class NestedData(BaseModel):
172 id: str
173
174 class NestedModel(BaseModel):
175 root: tuple[int, NestedData]
176
177 @model_validator(mode='before')
178 @classmethod
179 def populate_root(cls, values):
180 return {'root': values}
181
182 @model_serializer(mode='wrap')
183 def _serialize(self, handler, info):
184 data = handler(self)
185 if info.mode == 'json':
186 return data['root']
187 else:
188 return data
189
190 @classmethod
191 def model_modify_json_schema(cls, json_schema):
192 return json_schema['properties']['root']
193
194 class MyModel(BaseModel):
195 nested: list[NestedModel]
196
197 data = [0, {'id': 'foo'}]
198 m = MyModel.model_validate({'nested': [data]})
199 assert isinstance(m.nested[0], NestedModel)
200 assert isinstance(m.nested[0].root[1], NestedData)
201
202 nested = parse_obj_as(NestedModel, data)
203 assert isinstance(nested, NestedModel)
204
205
206def test_parse_nested_custom_root():

Callers

nothing calls this directly

Calls 2

parse_obj_asFunction · 0.90
model_validateMethod · 0.80

Tested by

no test coverage detected