Files
pydantic/tests/try_assert.py
T
Samuel Colvin 76ebdb915d combined uprev of packages (#1395)
* combined uprev of packages

* unused f-strings

* scroll-spy on docs
2020-04-15 16:40:21 +01:00

34 lines
974 B
Python

"""
This test is executed separately due to pytest's assertion-rewriting
"""
from pydantic import BaseModel, ValidationError, validator
def test_assert_raises_validation_error():
test_name = test_assert_raises_validation_error.__name__
class Model(BaseModel):
a: str
@validator('a')
def check_a(cls, v):
assert v == 'a', 'invalid a'
return v
Model(a='a')
expected_errors = [{'loc': ('a',), 'msg': 'invalid a', 'type': 'assertion_error'}]
try:
Model(a='snap')
except ValidationError as exc:
actual_errors = exc.errors()
if actual_errors != expected_errors:
raise RuntimeError(f'{test_name}:\nActual errors: {actual_errors}\nExpected errors: {expected_errors}')
else:
raise RuntimeError(f'{test_name}: ValidationError was not raised')
if __name__ == '__main__':
test_assert_raises_validation_error()
print('Non-pytest assert tests passed')