def test_nullable_strings_fails(): class NoneCheckModel(BaseModel): existing_str_value = 'foo' required_str_value: str = ... required_str_none_value: NoneStr = ... existing_bytes_value = b'foo' required_bytes_value: bytes = ... required_bytes_none_value: NoneBytes = ... try: NoneCheckModel( required_str_value=None, required_str_none_value=None, required_bytes_value=None, required_bytes_none_value=None, ) except ValidationError as e: assert """\ { "required_bytes_value": { "error_msg": "None is not an allow value", "error_type": "TypeError", "track": "bytes" }, "required_str_value": { "error_msg": "None is not an allow value", "error_type": "TypeError", "track": "str" } }""" == json.dumps(pretty_errors(e.errors_raw), indent=2, sort_keys=True)
def test_pretty_error_no_recursion(): with pytest.raises(TypeError): pretty_errors('foobar')