31 lines
938 B
Python
31 lines
938 B
Python
"""Registrable-domain comparison, which is what the same-site rules rest on."""
|
|
|
|
import pytest
|
|
|
|
from mews.fetch import registered_domain, same_site
|
|
|
|
CASES = [
|
|
("example.com", "example.com"),
|
|
("img.example.com", "example.com"),
|
|
("a.b.example.co.uk", "example.co.uk"),
|
|
("EXAMPLE.COM", "example.com"),
|
|
("example.com.", "example.com"),
|
|
("a.github.io", "a.github.io"),
|
|
("not-a-tld", None),
|
|
("", None),
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize(("host", "expected"), CASES)
|
|
def test_registrable_domain(host, expected):
|
|
assert registered_domain(host) == expected
|
|
|
|
|
|
def test_subdomains_of_one_domain_are_one_site():
|
|
assert same_site("example.com", "img.example.com")
|
|
|
|
|
|
def test_two_sites_on_a_shared_suffix_are_not_one_site():
|
|
"""The reason this uses a public suffix list rather than counting labels."""
|
|
assert not same_site("a.github.io", "b.github.io")
|
|
assert not same_site("example.co.uk", "evil.co.uk")
|