add is_number validator

This commit is contained in:
Martin
2016-07-26 12:48:51 +02:00
parent 617a19bf04
commit 30a0f00bd7
2 changed files with 23 additions and 1 deletions
+15
View File
@@ -10,6 +10,21 @@ def validate_keys_exists(obj, *keys):
return True return True
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
def validate_number(*values):
for val in values:
if not is_number(val):
raise ValidationError('{} is not a number'.format(val))
return True
def validate_territory(value): def validate_territory(value):
for market in iter_markets(): for market in iter_markets():
if market.territory == value: if market.territory == value:
+8 -1
View File
@@ -1,5 +1,6 @@
import unittest2 import unittest2
from api.validators import ValidationError, validate_keys_exists, validate_territory from api.validators import validate_keys_exists, validate_territory, validate_number
from api.exceptions import ValidationError
class TestValidation(unittest2.TestCase): class TestValidation(unittest2.TestCase):
@@ -15,3 +16,9 @@ class TestValidation(unittest2.TestCase):
def test_validate_territory(self): def test_validate_territory(self):
self.assertTrue(validate_territory('SE')) self.assertTrue(validate_territory('SE'))
self.assertRaises(ValidationError, validate_territory, 'unknown') self.assertRaises(ValidationError, validate_territory, 'unknown')
def test_validate_number(self):
self.assertRaises(ValidationError, validate_number, 'foo')
self.assertRaises(ValidationError, validate_number, 'foo', 12)
self.assertTrue(validate_number(12))
self.assertTrue(validate_number(12, 45))