fixing unittests and allowing for single character domains

This commit is contained in:
alwaysjolley 2020-06-03 08:08:49 -04:00
parent 2a1751ec30
commit 8658ac531e
2 changed files with 13 additions and 2 deletions

View File

@ -35,7 +35,7 @@ def is_valid_domain(domain):
domain = domain[:-1]
if len(domain) > 253:
return False
fqdn_re = re.compile("(?=^.{1,63}$)(^(?:[a-z0-9](?:-*[a-z0-9])+)$)", re.IGNORECASE)
fqdn_re = re.compile("(?=^.{1,63}$)(^(?:[a-z0-9](?:-*[a-z0-9])+)|[a-z0-9]$)", re.IGNORECASE)
return all(fqdn_re.match(d) for d in domain.split("."))

View File

@ -6,7 +6,18 @@ class TestDNSProvider(unittest.TestCase):
def test_is_valid_domain(self):
self.assertTrue(dnsutil.is_valid_domain("example.com"))
self.assertTrue(dnsutil.is_valid_domain("foo.bar.org"))
self.assertTrue(dnsutil.is_valid_domain("_acme-chall.example.com"))
self.assertTrue(dnsutil.is_valid_domain("exam--ple.io"))
self.assertTrue(dnsutil.is_valid_domain("a.example.com"))
self.assertTrue(dnsutil.is_valid_domain("example.io"))
self.assertTrue(dnsutil.is_valid_domain("example-of-63-character-domain-label-length-limit-1234567890123.com"))
self.assertFalse(dnsutil.is_valid_domain("example-of-63-character-domain-label-length-limit-12345678901234.com"))
self.assertFalse(dnsutil.is_valid_domain("_acme-chall.example.com"))
self.assertFalse(dnsutil.is_valid_domain("e/xample.com"))
self.assertFalse(dnsutil.is_valid_domain("exam\ple.com"))
self.assertFalse(dnsutil.is_valid_domain("*.example.com"))
self.assertFalse(dnsutil.is_valid_domain("-example.io"))
self.assertFalse(dnsutil.is_valid_domain("example-.io"))
self.assertFalse(dnsutil.is_valid_domain("example..io"))
self.assertFalse(dnsutil.is_valid_domain("exa mple.io"))
self.assertFalse(dnsutil.is_valid_domain("-"))
self.assertFalse(dnsutil.is_valid_domain(""))