MCPcopy
hub / github.com/pydantic/pydantic / test_config_model_defer_build

Function test_config_model_defer_build

tests/test_config.py:710–734  ·  view source on GitHub ↗
(defer_build: bool, generate_schema_calls: CallCounter)

Source from the content-addressed store, hash-verified

708
709@pytest.mark.parametrize('defer_build', [True, False])
710def test_config_model_defer_build(defer_build: bool, generate_schema_calls: CallCounter):
711 config = ConfigDict(defer_build=defer_build)
712
713 class MyModel(BaseModel):
714 model_config = config
715 x: int
716
717 if defer_build:
718 assert isinstance(MyModel.__pydantic_validator__, MockValSer)
719 assert isinstance(MyModel.__pydantic_serializer__, MockValSer)
720 assert generate_schema_calls.count == 0, 'Should respect defer_build'
721 else:
722 assert isinstance(MyModel.__pydantic_validator__, SchemaValidator)
723 assert isinstance(MyModel.__pydantic_serializer__, SchemaSerializer)
724 assert generate_schema_calls.count == 1, 'Should respect defer_build'
725
726 m = MyModel(x=1)
727 assert m.x == 1
728 assert m.model_dump()['x'] == 1
729 assert m.model_validate({'x': 2}).x == 2
730 assert m.model_json_schema()['type'] == 'object'
731
732 assert isinstance(MyModel.__pydantic_validator__, SchemaValidator)
733 assert isinstance(MyModel.__pydantic_serializer__, SchemaSerializer)
734 assert generate_schema_calls.count == 1, 'Should not build duplicated core schemas'
735
736
737@pytest.mark.parametrize('defer_build', [True, False])

Callers

nothing calls this directly

Calls 5

ConfigDictClass · 0.90
model_validateMethod · 0.80
MyModelClass · 0.70
model_dumpMethod · 0.45
model_json_schemaMethod · 0.45

Tested by

no test coverage detected