Skip to content

Commit 54f901d

Browse files
committed
test: 🚨 Add more tests for some edge case validations
1 parent ce09626 commit 54f901d

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

‎tests/test_field_validators.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,22 @@ async def validate_name_7(self, field: str, config: ValidationInfo) -> None: pas
6060
@async_field_validator('name')
6161
async def validate_name_8(self, value: str, field: str, config: ValidationInfo) -> None: pass
6262

63+
@async_field_validator('name')
64+
async def validate_name_9(self, **kwargs) -> None: pass
65+
6366
instance = OtherModel(name="valid")
6467
await instance.model_async_validate()
6568

6669

6770
@pytest.mark.asyncio
6871
async def test_invalid_validators_are_prohibited():
72+
with pytest.raises(PydanticUserError):
73+
class OtherModel1(AsyncValidationModelMixin, pydantic.BaseModel):
74+
name: str
75+
76+
@async_field_validator
77+
async def validate_name(self, no_value: Any) -> None: pass
78+
6979
with pytest.raises(PydanticUserError):
7080
class OtherModel1(AsyncValidationModelMixin, pydantic.BaseModel):
7181
name: str

‎tests/test_model_validators.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ async def validate_name_1(self) -> None: pass
4242
@async_model_validator()
4343
async def validate_name_2(self, config: ValidationInfo) -> None: pass
4444

45+
@async_model_validator()
46+
async def validate_name_3(self, **kwargs) -> None: pass
47+
4548
instance = OtherModel(name="valid")
4649
await instance.model_async_validate()
4750

@@ -55,6 +58,13 @@ class OtherModel1(AsyncValidationModelMixin, pydantic.BaseModel):
5558
@async_model_validator()
5659
async def validate_name(self, uses_value_or_anything: Any) -> None: pass
5760

61+
with pytest.raises(PydanticUserError):
62+
class OtherModel2(AsyncValidationModelMixin, pydantic.BaseModel):
63+
name: str
64+
65+
@async_model_validator()
66+
async def validate_name(cls) -> None: pass
67+
5868

5969
@pytest.mark.asyncio
6070
async def test_async_validation_may_get_extra_details():

0 commit comments

Comments
 (0)