Created
October 31, 2010 11:56
-
-
Save idan/656493 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.core.exceptions import ValidationError | |
from django.core.validators import EMPTY_VALUES | |
from django.utils.unittest import TestCase | |
class LocalFlavorTestCase(TestCase): | |
def assertFieldOutput(self, fieldclass, valid, invalid): | |
"""Asserts that a field behaves correctly with various inputs. | |
Args: | |
fieldclass: the class of the field to be tested. | |
valid: a dictionary mapping valid inputs to their expected | |
cleaned values. | |
invalid: a dictionary mapping invalid inputs to one or more | |
raised error messages. | |
""" | |
required = fieldclass() | |
optional = fieldclass(required=False) | |
# test valid inputs | |
for input, output in valid.items(): | |
self.assertEqual(required.clean(input), output) | |
self.assertEqual(optional.clean(input), output) | |
# test invalid inputs | |
for input, errors in invalid.items(): | |
self.assertRaisesRegexp(ValidationError, unicode(errors), required.clean, input) | |
self.assertRaisesRegexp(ValidationError, unicode(errors), optional.clean, input) | |
# test required inputs | |
error_required = u'This field is required' | |
for e in EMPTY_VALUES: | |
self.assertRaisesRegexp(ValidationError, error_required, required.clean, e) | |
self.assertEqual(optional.clean(e), u'') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment