takahe/tests/users/views/test_domains.py
Andrew Godwin 9ad9bdd936 Implement post rate limits, move to signed cookies
Also improve the test harness a little
Fixes #112
2022-12-15 15:55:33 -07:00

46 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)