1
from unittest import TestCase
3
from django.core.exceptions import ValidationError
4
from django.core.validators import EMPTY_VALUES
7
class LocalFlavorTestCase(TestCase):
8
def assertFieldOutput(self, fieldclass, valid, invalid, field_args=[],
9
field_kwargs={}, empty_value=u''):
11
Asserts that a field behaves correctly with various inputs.
14
fieldclass: the class of the field to be tested.
15
valid: a dictionary mapping valid inputs to their expected
17
invalid: a dictionary mapping invalid inputs to one or more
18
raised error messages.
19
field_args: the args passed to instantiate the field
20
field_kwargs: the kwargs passed to instantiate the field
21
empty_value: the expected clean output for inputs in EMPTY_VALUES
24
required = fieldclass(*field_args, **field_kwargs)
25
optional = fieldclass(*field_args, **dict(field_kwargs, required=False))
27
for input, output in valid.items():
28
self.assertEqual(required.clean(input), output)
29
self.assertEqual(optional.clean(input), output)
31
for input, errors in invalid.items():
34
except ValidationError, e:
35
self.assertEqual(errors, e.messages)
40
except ValidationError, e:
41
self.assertEqual(errors, e.messages)
44
# test required inputs
45
error_required = [u'This field is required.']
46
for val in EMPTY_VALUES:
49
except ValidationError, e:
50
self.assertEqual(error_required, e.messages)
53
self.assertEqual(optional.clean(val), empty_value)