From 1a805ec69e6c9845a727886e1e354cc6d0a38f78 Mon Sep 17 00:00:00 2001 From: Martin Date: Fri, 8 Jul 2016 16:49:49 +0200 Subject: [PATCH] add validate_territory validator --- api/validators.py | 8 ++++++++ tests/test_validators.py | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/api/validators.py b/api/validators.py index 3e06f38..98d65a0 100644 --- a/api/validators.py +++ b/api/validators.py @@ -1,4 +1,5 @@ # coding=UTF-8 +from api.models.market import iter_markets from api.exceptions import ValidationError @@ -7,3 +8,10 @@ def validate_keys_exists(obj, *keys): if not key in obj: raise ValidationError('No {} is specified'.format(key)) 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)) diff --git a/tests/test_validators.py b/tests/test_validators.py index 1e901dc..c76dbe9 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -1,5 +1,5 @@ import unittest2 -from api.validators import ValidationError, validate_keys_exists +from api.validators import ValidationError, validate_keys_exists, validate_territory class TestValidation(unittest2.TestCase): @@ -11,3 +11,7 @@ class TestValidation(unittest2.TestCase): ValidationError, validate_keys_exists, obj, 'a', 'b', 'c') self.assertTrue(validate_keys_exists(obj, 'a')) self.assertTrue(validate_keys_exists(obj, 'a', 'b')) + + def test_validate_territory(self): + self.assertTrue(validate_territory('SE')) + self.assertRaises(ValidationError, validate_territory, 'unknown')