(defer_build: bool, generate_schema_calls: CallCounter)
| 736 | |
| 737 | @pytest.mark.parametrize('defer_build', [True, False]) |
| 738 | def 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 | |
| 762 | def test_dataclass_defer_build_override_on_rebuild_dataclass(generate_schema_calls: CallCounter) -> None: |
nothing calls this directly
no test coverage detected