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:
graham-dds 2020-01-16 12:03:01 -05:00
parent c460f91045
commit b3dd32f3f7
2 changed files with 6 additions and 5 deletions

View File

@ -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

View File

@ -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