mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #18119 -- Added a DomainNameValidator validator.
Thanks Claude Paroz for the review. Co-authored-by: Nina Menezes <77671865+nmenezes0@users.noreply.github.com>
This commit is contained in:
committed by
Sarah Boyce
parent
b9838c65ec
commit
4971a9afe5
@@ -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"),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user