takahe/tests/users/views/test_domains.py

47 lines
1.1 KiB
Python

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):
DomainValidator()(domain)