add validate_territory validator
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
# coding=UTF-8
|
# coding=UTF-8
|
||||||
|
from api.models.market import iter_markets
|
||||||
from api.exceptions import ValidationError
|
from api.exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
@@ -7,3 +8,10 @@ def validate_keys_exists(obj, *keys):
|
|||||||
if not key in obj:
|
if not key in obj:
|
||||||
raise ValidationError('No {} is specified'.format(key))
|
raise ValidationError('No {} is specified'.format(key))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def validate_territory(value):
|
||||||
|
for market in iter_markets():
|
||||||
|
if market.territory == value:
|
||||||
|
return True
|
||||||
|
raise ValidationError('{} is not a valid territory'.format(value))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import unittest2
|
import unittest2
|
||||||
from api.validators import ValidationError, validate_keys_exists
|
from api.validators import ValidationError, validate_keys_exists, validate_territory
|
||||||
|
|
||||||
|
|
||||||
class TestValidation(unittest2.TestCase):
|
class TestValidation(unittest2.TestCase):
|
||||||
@@ -11,3 +11,7 @@ class TestValidation(unittest2.TestCase):
|
|||||||
ValidationError, validate_keys_exists, obj, 'a', 'b', 'c')
|
ValidationError, validate_keys_exists, obj, 'a', 'b', 'c')
|
||||||
self.assertTrue(validate_keys_exists(obj, 'a'))
|
self.assertTrue(validate_keys_exists(obj, 'a'))
|
||||||
self.assertTrue(validate_keys_exists(obj, 'a', 'b'))
|
self.assertTrue(validate_keys_exists(obj, 'a', 'b'))
|
||||||
|
|
||||||
|
def test_validate_territory(self):
|
||||||
|
self.assertTrue(validate_territory('SE'))
|
||||||
|
self.assertRaises(ValidationError, validate_territory, 'unknown')
|
||||||
|
|||||||
Reference in New Issue
Block a user