Allow Falsey values for IsNumber validator
We should use Required() instead to ensure data is present, if that's the desired behavior
This commit is contained in:
parent
c460f91045
commit
b3dd32f3f7
@ -36,10 +36,11 @@ def DateRange(lower_bound=None, upper_bound=None, message=None):
|
|||||||
|
|
||||||
def IsNumber(message=translate("forms.validators.is_number_message")):
|
def IsNumber(message=translate("forms.validators.is_number_message")):
|
||||||
def _is_number(form, field):
|
def _is_number(form, field):
|
||||||
try:
|
if field.data:
|
||||||
int(field.data)
|
try:
|
||||||
except (ValueError, TypeError):
|
int(field.data)
|
||||||
raise ValidationError(message)
|
except (ValueError, TypeError):
|
||||||
|
raise ValidationError(message)
|
||||||
|
|
||||||
return _is_number
|
return _is_number
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ class TestIsNumber:
|
|||||||
dummy_field.data = valid
|
dummy_field.data = valid
|
||||||
validator(dummy_form, dummy_field)
|
validator(dummy_form, dummy_field)
|
||||||
|
|
||||||
@pytest.mark.parametrize("invalid", ["12.1", "two", "", None])
|
@pytest.mark.parametrize("invalid", ["12.1", "two"])
|
||||||
def test_IsNumber_rejects_anything_else(self, invalid, dummy_form, dummy_field):
|
def test_IsNumber_rejects_anything_else(self, invalid, dummy_form, dummy_field):
|
||||||
validator = IsNumber()
|
validator = IsNumber()
|
||||||
dummy_field.data = invalid
|
dummy_field.data = invalid
|
||||||
|
Loading…
x
Reference in New Issue
Block a user