diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_fields.py | 93 |
1 files changed, 83 insertions, 10 deletions
diff --git a/tests/test_fields.py b/tests/test_fields.py index 6ec18041..ae7f1919 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -26,16 +26,7 @@ class ValidAndInvalidValues: assert exc_info.value.messages == expected_failure -class TestCharField(ValidAndInvalidValues): - valid_mappings = { - 1: '1', - 'abc': 'abc' - } - invalid_mappings = { - '': ['This field may not be blank.'] - } - field = fields.CharField() - +# Boolean types... class TestBooleanField(ValidAndInvalidValues): valid_mappings = { @@ -54,6 +45,60 @@ class TestBooleanField(ValidAndInvalidValues): field = fields.BooleanField() +# String types... + +class TestCharField(ValidAndInvalidValues): + valid_mappings = { + 1: '1', + 'abc': 'abc' + } + invalid_mappings = { + '': ['This field may not be blank.'] + } + field = fields.CharField() + + +class TestEmailField(ValidAndInvalidValues): + valid_mappings = { + 'example@example.com': 'example@example.com', + ' example@example.com ': 'example@example.com', + } + invalid_mappings = { + 'example.com': ['Enter a valid email address.'] + } + field = fields.EmailField() + + +class TestRegexField(ValidAndInvalidValues): + valid_mappings = { + 'a9': 'a9', + } + invalid_mappings = { + 'A9': ["This value does not match the required pattern."] + } + field = fields.RegexField(regex='[a-z][0-9]') + + +class TestSlugField(ValidAndInvalidValues): + valid_mappings = { + 'slug-99': 'slug-99', + } + invalid_mappings = { + 'slug 99': ["Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."] + } + field = fields.SlugField() + + +class TestURLField(ValidAndInvalidValues): + valid_mappings = { + 'http://example.com': 'http://example.com', + } + invalid_mappings = { + 'example.com': ['Enter a valid URL.'] + } + field = fields.URLField() + + # Number types... class TestIntegerField(ValidAndInvalidValues): @@ -249,6 +294,34 @@ class TestNaiveDateTimeField(ValidAndInvalidValues): field = fields.DateTimeField(default_timezone=None) +class TestTimeField(ValidAndInvalidValues): + """ + Valid and invalid values for `TimeField`. + """ + valid_mappings = { + '13:00': datetime.time(13, 00), + datetime.time(13, 00): datetime.time(13, 00), + } + invalid_mappings = { + 'abc': ['Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]]'], + '99:99': ['Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]]'], + } + field = fields.TimeField() + + +class TestCustomInputFormatTimeField(ValidAndInvalidValues): + """ + Valid and invalid values for `TimeField` with a custom input format. + """ + valid_mappings = { + '1:00pm': datetime.time(13, 00), + } + invalid_mappings = { + '13:00': ['Time has wrong format. Use one of these formats instead: hh:mm[AM|PM]'], + } + field = fields.TimeField(input_formats=['%I:%M%p']) + + # Choice types... class TestChoiceField(ValidAndInvalidValues): |
