Files
pydantic/tests/test_assert_in_validators.py
T
Arseny Boykov 2f7e40476f include assert in validator test in pytest (#2033)
* include assert in valudator test in pytest

* remove try_assert execution in Makefile

* use pytest.raises

* add newline

* tweak

* undo my mistake

Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2020-10-25 19:50:38 +00:00

27 lines
682 B
Python

"""
PYTEST_DONT_REWRITE
"""
import pytest
from pydantic import BaseModel, ValidationError, validator
def test_assert_raises_validation_error():
class Model(BaseModel):
a: str
@validator('a')
def check_a(cls, v):
assert v == 'a', 'invalid a'
return v
assert Model(a='a').a == 'a'
with pytest.raises(ValidationError) as exc_info:
Model(a='snap')
expected_errors = [{'loc': ('a',), 'msg': 'invalid a', 'type': 'assertion_error'}]
actual_errors = exc_info.value.errors()
if expected_errors != actual_errors:
pytest.fail(f'Actual errors: {actual_errors}\nExpected errors: {expected_errors}')