MCPcopy
hub / github.com/pydantic/pydantic / test_properties_and_computed_fields

Function test_properties_and_computed_fields

tests/test_computed_fields.py:216–240  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

214
215
216def test_properties_and_computed_fields():
217 class Model(BaseModel):
218 x: str
219 _private_float: float = PrivateAttr(0)
220
221 @property
222 def public_int(self) -> int:
223 return int(self._private_float)
224
225 @public_int.setter
226 def public_int(self, v: float) -> None:
227 self._private_float = v
228
229 @computed_field
230 @property
231 def public_str(self) -> str:
232 return f'public {self.public_int}'
233
234 m = Model(x='pika')
235 assert m.model_dump() == {'x': 'pika', 'public_str': 'public 0'}
236 m._private_float = 3.1
237 assert m.model_dump() == {'x': 'pika', 'public_str': 'public 3'}
238 m.public_int = 2
239 assert m._private_float == 2.0
240 assert m.model_dump() == {'x': 'pika', 'public_str': 'public 2'}
241
242
243def test_computed_fields_repr():

Callers

nothing calls this directly

Calls 2

ModelClass · 0.70
model_dumpMethod · 0.45

Tested by

no test coverage detected