diff options
| author | Berker Peksag <berker.peksag@gmail.com> | 2016-09-27 04:59:48 +0300 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2024-05-21 23:11:12 +0200 |
| commit | 4971a9afe5642569f3dcfcd3972ebb39e88dd457 (patch) | |
| tree | 56248ceac38e90d6523045eef5c47182dd2f3fa1 /tests/validators | |
| parent | b9838c65ec2fee36c1fd0d46494ba44da27a9b34 (diff) | |
Fixed #18119 -- Added a DomainNameValidator validator.
Thanks Claude Paroz for the review.
Co-authored-by: Nina Menezes <77671865+nmenezes0@users.noreply.github.com>
Diffstat (limited to 'tests/validators')
| -rw-r--r-- | tests/validators/tests.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/validators/tests.py b/tests/validators/tests.py index 5376517a4a..ba1db5ea46 100644 --- a/tests/validators/tests.py +++ b/tests/validators/tests.py @@ -9,6 +9,7 @@ from django.core.files.base import ContentFile from django.core.validators import ( BaseValidator, DecimalValidator, + DomainNameValidator, EmailValidator, FileExtensionValidator, MaxLengthValidator, @@ -21,6 +22,7 @@ from django.core.validators import ( URLValidator, int_list_validator, validate_comma_separated_integer_list, + validate_domain_name, validate_email, validate_image_file_extension, validate_integer, @@ -618,6 +620,38 @@ TEST_DATA = [ (ProhibitNullCharactersValidator(), "\x00something", ValidationError), (ProhibitNullCharactersValidator(), "something", None), (ProhibitNullCharactersValidator(), None, None), + (validate_domain_name, "000000.org", None), + (validate_domain_name, "python.org", None), + (validate_domain_name, "python.co.uk", None), + (validate_domain_name, "python.tk", None), + (validate_domain_name, "domain.with.idn.tld.उदाहरण.परीक्ष", None), + (validate_domain_name, "ıçğü.com", None), + (validate_domain_name, "xn--7ca6byfyc.com", None), + (validate_domain_name, "hg.python.org", None), + (validate_domain_name, "python.xyz", None), + (validate_domain_name, "djangoproject.com", None), + (validate_domain_name, "DJANGOPROJECT.COM", None), + (validate_domain_name, "spam.eggs", None), + (validate_domain_name, "python-python.com", None), + (validate_domain_name, "python.name.uk", None), + (validate_domain_name, "python.tips", None), + (validate_domain_name, "http://例子.测试", None), + (validate_domain_name, "http://dashinpunytld.xn---c", None), + (validate_domain_name, "python..org", ValidationError), + (validate_domain_name, "python-.org", ValidationError), + (validate_domain_name, "too-long-name." * 20 + "com", ValidationError), + (validate_domain_name, "stupid-name试", ValidationError), + (validate_domain_name, "255.0.0.0", ValidationError), + (validate_domain_name, "fe80::1", ValidationError), + (validate_domain_name, "1:2:3:4:5:6:7:8", ValidationError), + (DomainNameValidator(accept_idna=False), "non-idna-domain-name-passes.com", None), + ( + DomainNameValidator(accept_idna=False), + "domain.with.idn.tld.उदाहरण.परीक्ष", + ValidationError, + ), + (DomainNameValidator(accept_idna=False), "ıçğü.com", ValidationError), + (DomainNameValidator(accept_idna=False), "not-domain-name", ValidationError), ] # Add valid and invalid URL tests. @@ -847,3 +881,25 @@ class TestValidatorEquality(TestCase): ProhibitNullCharactersValidator(message="message", code="code1"), ProhibitNullCharactersValidator(message="message", code="code2"), ) + + def test_domain_name_equality(self): + self.assertEqual( + DomainNameValidator(), + DomainNameValidator(), + ) + self.assertNotEqual( + DomainNameValidator(), + EmailValidator(), + ) + self.assertNotEqual( + DomainNameValidator(), + DomainNameValidator(code="custom_code"), + ) + self.assertEqual( + DomainNameValidator(message="custom error message"), + DomainNameValidator(message="custom error message"), + ) + self.assertNotEqual( + DomainNameValidator(message="custom error message"), + DomainNameValidator(message="custom error message", code="custom_code"), + ) |
