()
| 265 | |
| 266 | |
| 267 | def test_allow_extra(): |
| 268 | class Model(BaseModel): |
| 269 | model_config = ConfigDict(extra='allow') |
| 270 | a: float |
| 271 | |
| 272 | m = Model(a='10.2', b=12) |
| 273 | assert m.__dict__ == {'a': 10.2} |
| 274 | assert m.__pydantic_extra__ == {'b': 12} |
| 275 | assert m.a == 10.2 |
| 276 | assert m.b == 12 |
| 277 | assert m.model_extra == {'b': 12} |
| 278 | m.c = 42 |
| 279 | assert 'c' not in m.__dict__ |
| 280 | assert m.__pydantic_extra__ == {'b': 12, 'c': 42} |
| 281 | assert m.model_dump() == {'a': 10.2, 'b': 12, 'c': 42} |
| 282 | |
| 283 | |
| 284 | @pytest.mark.parametrize('extra', ['ignore', 'forbid', 'allow']) |
nothing calls this directly
no test coverage detected