MCPcopy
hub / github.com/pydantic/pydantic / test_config_dataclass_defer_build

Function test_config_dataclass_defer_build

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

Source from the content-addressed store, hash-verified

736
737@pytest.mark.parametrize('defer_build', [True, False])
738def test_config_dataclass_defer_build(defer_build: bool, generate_schema_calls: CallCounter) -> None:
739 config = ConfigDict(defer_build=defer_build)
740
741 @pydantic_dataclass(config=config)
742 class MyDataclass:
743 x: int
744
745 if defer_build:
746 assert isinstance(MyDataclass.__pydantic_validator__, MockValSer)
747 assert isinstance(MyDataclass.__pydantic_serializer__, MockValSer)
748 assert generate_schema_calls.count == 0, 'Should respect defer_build'
749 else:
750 assert isinstance(MyDataclass.__pydantic_validator__, SchemaValidator)
751 assert isinstance(MyDataclass.__pydantic_serializer__, SchemaSerializer)
752 assert generate_schema_calls.count == 1, 'Should respect defer_build'
753
754 m = MyDataclass(x=1)
755 assert m.x == 1
756
757 assert isinstance(MyDataclass.__pydantic_validator__, SchemaValidator)
758 assert isinstance(MyDataclass.__pydantic_serializer__, SchemaSerializer)
759 assert generate_schema_calls.count == 1, 'Should not build duplicated core schemas'
760
761
762def test_dataclass_defer_build_override_on_rebuild_dataclass(generate_schema_calls: CallCounter) -> None:

Callers

nothing calls this directly

Calls 2

ConfigDictClass · 0.90
MyDataclassClass · 0.70

Tested by

no test coverage detected