import pytest
from django.core.exceptions import ValidationError
from users.views.admin.domains import DomainValidator
VALID_DOMAINS = [
"takahe.social",
"subdomain.takahe.social",
"another.subdomain.takahe.social",
"jointakahe.org",
"xn--c6h.com",
"takahe.xn--social",
"example.com",
"www.example.com",
"example.co.uk",
]
INVALID_DOMAINS = [
"example.c",
"example,com",
"example,com.com",
"example",
".com",
"example.com/example",
"-example.com",
"example-.com",
"example.com-",
"https://example.com",
@pytest.mark.parametrize("domain", VALID_DOMAINS)
def test_domain_validation_accepts_valid_domains(domain):
"""
Tests that the domain validator works in positive cases
DomainValidator()(domain)
@pytest.mark.parametrize("domain", INVALID_DOMAINS)
def test_domain_validation_raises_exception_for_invalid_domains(domain):
Tests that the domain validator works in negative cases
with pytest.raises(ValidationError):