* gt, lt, fix #176

* change test names
This commit is contained in:
Samuel Colvin
2018-06-02 20:53:10 +01:00
committed by GitHub
parent 31f5f9c267
commit 95aba150b2
4 changed files with 45 additions and 21 deletions
+4 -4
View File
@@ -120,16 +120,16 @@ class StrRegexError(PydanticValueError):
super().__init__(pattern=pattern)
class NumberMinSizeError(PydanticValueError):
code = 'number.min_size'
class NumberGtError(PydanticValueError):
code = 'number.gt'
msg_template = 'ensure this value is greater than {limit_value}'
def __init__(self, *, limit_value: Union[int, float, Decimal]) -> None:
super().__init__(limit_value=limit_value)
class NumberMaxSizeError(PydanticValueError):
code = 'number.max_size'
class NumberLtError(PydanticValueError):
code = 'number.lt'
msg_template = 'ensure this value is less than {limit_value}'
def __init__(self, *, limit_value: Union[int, float, Decimal]) -> None:
+4 -4
View File
@@ -79,11 +79,11 @@ def float_validator(v) -> float:
def number_size_validator(v, field, config, **kwargs):
if field.type_.gt is not None and v < field.type_.gt:
raise errors.NumberMinSizeError(limit_value=field.type_.gt)
if field.type_.gt is not None and v <= field.type_.gt:
raise errors.NumberGtError(limit_value=field.type_.gt)
if field.type_.lt is not None and v > field.type_.lt:
raise errors.NumberMaxSizeError(limit_value=field.type_.lt)
if field.type_.lt is not None and v >= field.type_.lt:
raise errors.NumberLtError(limit_value=field.type_.lt)
return v
+5 -5
View File
@@ -32,7 +32,7 @@ f -> 0
g
uuid version 1 expected (type=value_error.uuid.version; required_version=1)
h
yet another error message template 42 (type=value_error.number.min_size; limit_value=42)""",
yet another error message template 42 (type=value_error.number.gt; limit_value=42)""",
),
(
'flatten_errors',
@@ -122,7 +122,7 @@ h
'h',
),
'msg': 'yet another error message template 42',
'type': 'value_error.number.min_size',
'type': 'value_error.number.gt',
'ctx': {
'limit_value': 42,
},
@@ -221,7 +221,7 @@ h
"h"
],
"msg": "yet another error message template 42",
"type": "value_error.number.min_size"
"type": "value_error.number.gt"
}
]"""
),
@@ -250,7 +250,7 @@ f -> 0
g
uuid version 1 expected (type=value_error.uuid.version; required_version=1)
h
yet another error message template 42 (type=value_error.number.min_size; limit_value=42)"""
yet another error message template 42 (type=value_error.number.gt; limit_value=42)"""
),
))
def test_validation_error(result, expected):
@@ -271,7 +271,7 @@ def test_validation_error(result, expected):
class Config:
error_msg_templates = {
'value_error.number.min_size': 'yet another error message template {limit_value}',
'value_error.number.gt': 'yet another error message template {limit_value}',
}
with pytest.raises(ValidationError) as exc_info:
+32 -8
View File
@@ -519,7 +519,7 @@ def test_int_validation():
{
'loc': ('a',),
'msg': 'ensure this value is greater than 0',
'type': 'value_error.number.min_size',
'type': 'value_error.number.gt',
'ctx': {
'limit_value': 0,
},
@@ -527,7 +527,7 @@ def test_int_validation():
{
'loc': ('b',),
'msg': 'ensure this value is less than 0',
'type': 'value_error.number.max_size',
'type': 'value_error.number.lt',
'ctx': {
'limit_value': 0,
},
@@ -535,7 +535,7 @@ def test_int_validation():
{
'loc': ('c',),
'msg': 'ensure this value is greater than 4',
'type': 'value_error.number.min_size',
'type': 'value_error.number.gt',
'ctx': {
'limit_value': 4,
},
@@ -558,7 +558,7 @@ def test_float_validation():
{
'loc': ('a',),
'msg': 'ensure this value is greater than 0',
'type': 'value_error.number.min_size',
'type': 'value_error.number.gt',
'ctx': {
'limit_value': 0,
},
@@ -566,7 +566,7 @@ def test_float_validation():
{
'loc': ('b',),
'msg': 'ensure this value is less than 0',
'type': 'value_error.number.max_size',
'type': 'value_error.number.lt',
'ctx': {
'limit_value': 0,
},
@@ -574,7 +574,7 @@ def test_float_validation():
{
'loc': ('c',),
'msg': 'ensure this value is greater than 4',
'type': 'value_error.number.min_size',
'type': 'value_error.number.gt',
'ctx': {
'limit_value': 4,
},
@@ -704,7 +704,7 @@ def test_anystr_strip_whitespace_disabled():
{
'loc': ('foo',),
'msg': 'ensure this value is greater than 42.24',
'type': 'value_error.number.min_size',
'type': 'value_error.number.gt',
'ctx': {
'limit_value': Decimal('42.24'),
},
@@ -715,7 +715,7 @@ def test_anystr_strip_whitespace_disabled():
{
'loc': ('foo',),
'msg': 'ensure this value is less than 42.24',
'type': 'value_error.number.max_size',
'type': 'value_error.number.lt',
'ctx': {
'limit_value': Decimal('42.24'),
},
@@ -836,3 +836,27 @@ def test_path_validation(value, result):
assert exc_info.value.flatten_errors() == result
else:
assert Model(foo=value).foo == result
def test_number_gt():
class Model(BaseModel):
a: conint(gt=-1) = 0
assert Model(a=0).dict() == {'a': 0}
with pytest.raises(ValidationError) as exc_info:
Model(a=-1)
assert (
'ensure this value is greater than -1 (type=value_error.number.gt; limit_value=-1)'
) in str(exc_info.value)
def test_number_lt():
class Model(BaseModel):
a: conint(lt=5) = 0
assert Model(a=4).dict() == {'a': 4}
with pytest.raises(ValidationError) as exc_info:
Model(a=5)
assert (
'ensure this value is less than 5 (type=value_error.number.lt; limit_value=5)'
) in str(exc_info.value)