|
9 | 9 |
|
10 | 10 | def _field_is_required(model: Union[type[pydantic.BaseModel], pydantic.BaseModel], field_name: str) -> bool:
|
11 | 11 | """Check if a field is required on a pydantic V2 model."""
|
12 |
| - json_required = ( |
13 |
| - model.model_fields[field_name].json_schema_extra is not None |
14 |
| - and model.model_fields[field_name].json_schema_extra.get("required", False) |
15 |
| - ) |
16 |
| - return model.model_fields[field_name].is_required() or json_required |
| 12 | + |
| 13 | + return model.model_fields[field_name].is_required() |
17 | 14 |
|
18 | 15 |
|
19 | 16 | class Something(pydantic.BaseModel):
|
20 | 17 | name: str
|
21 | 18 | age: int
|
22 | 19 | already_optional: None = None
|
23 |
| - already_required: int = pydantic.Field(default=1, json_schema_extra={"required": True}) |
| 20 | + already_required: int = pydantic.Field(default=1) |
24 | 21 |
|
25 | 22 |
|
26 | 23 | class SomethingWithMixin(PartialModelMixin, pydantic.BaseModel):
|
@@ -62,12 +59,6 @@ def test_partial_model_will_be_the_same_on_mixin():
|
62 | 59 |
|
63 | 60 | assert SomethingWithMixinPartial1 is SomethingWithMixinPartial2
|
64 | 61 |
|
65 |
| -def test_pydantic_v2_partial_model_will_override_json_required(): |
66 |
| - SomethingPartial = create_partial_model(Something) |
67 |
| - assert _field_is_required(SomethingPartial, "already_required") is False |
68 |
| - schema = SomethingPartial.model_json_schema() |
69 |
| - assert schema["properties"]["already_required"]["nullable"] is True |
70 |
| - assert schema["properties"]["already_required"]["required"] is False |
71 | 62 |
|
72 | 63 | def test_partial_class_name_can_be_overridden():
|
73 | 64 | SomethingPartial = create_partial_model(Something, "name")
|
|
0 commit comments