diff options
Diffstat (limited to 'tests/validators')
| -rw-r--r-- | tests/validators/tests.py | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/tests/validators/tests.py b/tests/validators/tests.py index 56ebbe4cce..56dea8804f 100644 --- a/tests/validators/tests.py +++ b/tests/validators/tests.py @@ -9,11 +9,13 @@ from datetime import datetime, timedelta from unittest import TestCase from django.core.exceptions import ValidationError +from django.core.files.base import ContentFile from django.core.validators import ( - BaseValidator, DecimalValidator, EmailValidator, MaxLengthValidator, - MaxValueValidator, MinLengthValidator, MinValueValidator, RegexValidator, - URLValidator, int_list_validator, validate_comma_separated_integer_list, - validate_email, validate_integer, validate_ipv4_address, + BaseValidator, DecimalValidator, EmailValidator, FileExtensionValidator, + MaxLengthValidator, MaxValueValidator, MinLengthValidator, + MinValueValidator, RegexValidator, URLValidator, int_list_validator, + validate_comma_separated_integer_list, validate_email, + validate_image_file_extension, validate_integer, validate_ipv4_address, validate_ipv6_address, validate_ipv46_address, validate_slug, validate_unicode_slug, ) @@ -242,6 +244,17 @@ TEST_DATA = [ (RegexValidator('x', flags=re.IGNORECASE), 'y', ValidationError), (RegexValidator('a'), 'A', ValidationError), (RegexValidator('a', flags=re.IGNORECASE), 'A', None), + + (FileExtensionValidator(['txt']), ContentFile('contents', name='fileWithUnsupportedExt.jpg'), ValidationError), + (FileExtensionValidator(['txt']), ContentFile('contents', name='fileWithNoExtenstion'), ValidationError), + (FileExtensionValidator([]), ContentFile('contents', name='file.txt'), ValidationError), + (FileExtensionValidator(['txt']), ContentFile('contents', name='file.txt'), None), + (FileExtensionValidator(), ContentFile('contents', name='file.jpg'), None), + + (validate_image_file_extension, ContentFile('contents', name='file.jpg'), None), + (validate_image_file_extension, ContentFile('contents', name='file.png'), None), + (validate_image_file_extension, ContentFile('contents', name='file.txt'), ValidationError), + (validate_image_file_extension, ContentFile('contents', name='file'), ValidationError), ] @@ -422,3 +435,33 @@ class TestValidatorEquality(TestCase): DecimalValidator(1, 2), MinValueValidator(11), ) + + def test_file_extension_equality(self): + self.assertEqual( + FileExtensionValidator(), + FileExtensionValidator() + ) + self.assertEqual( + FileExtensionValidator(['txt']), + FileExtensionValidator(['txt']) + ) + self.assertEqual( + FileExtensionValidator(['txt']), + FileExtensionValidator(['txt'], code='invalid_extension') + ) + self.assertNotEqual( + FileExtensionValidator(['txt']), + FileExtensionValidator(['png']) + ) + self.assertNotEqual( + FileExtensionValidator(['txt']), + FileExtensionValidator(['png', 'jpg']) + ) + self.assertNotEqual( + FileExtensionValidator(['txt']), + FileExtensionValidator(['txt'], code='custom_code') + ) + self.assertNotEqual( + FileExtensionValidator(['txt']), + FileExtensionValidator(['txt'], message='custom error message') + ) |
