def test_is_hostname(): """ API: is_hostname() function """ # Valid Hostnames assert utils.is_hostname('yahoo.ca') is True assert utils.is_hostname('yahoo.ca.') is True assert utils.is_hostname('valid-dashes-in-host.ca') is True assert utils.is_hostname('valid-underscores_in_host.ca') is True # Invalid Hostnames assert utils.is_hostname('invalid-characters_#^.ca') is False assert utils.is_hostname(' spaces ') is False assert utils.is_hostname(' ') is False assert utils.is_hostname('') is False
def test_is_hostname(): """ API: is_hostname() function """ # Valid Hostnames assert utils.is_hostname('yahoo.ca') == 'yahoo.ca' assert utils.is_hostname('yahoo.ca.') == 'yahoo.ca' assert utils.is_hostname('valid-dashes-in-host.ca') == \ 'valid-dashes-in-host.ca' assert utils.is_hostname('valid-underscores_in_host.ca') == \ 'valid-underscores_in_host.ca' # Invalid Hostnames assert utils.is_hostname('-hostname.that.starts.with.a.dash') is False assert utils.is_hostname('invalid-characters_#^.ca') is False assert utils.is_hostname(' spaces ') is False assert utils.is_hostname(' ') is False assert utils.is_hostname('') is False # Valid IPv4 Addresses assert utils.is_hostname('127.0.0.1') == '127.0.0.1' assert utils.is_hostname('0.0.0.0') == '0.0.0.0' assert utils.is_hostname('255.255.255.255') == '255.255.255.255' # But not if we're not checking for this: assert utils.is_hostname('127.0.0.1', ipv4=False) is False assert utils.is_hostname('0.0.0.0', ipv4=False) is False assert utils.is_hostname('255.255.255.255', ipv4=False) is False # Invalid IPv4 Addresses assert utils.is_hostname('1.2.3') is False assert utils.is_hostname('256.256.256.256') is False assert utils.is_hostname('999.0.0.0') is False assert utils.is_hostname('1.2.3.4.5') is False assert utils.is_hostname(' 127.0.0.1 ') is False assert utils.is_hostname(' ') is False assert utils.is_hostname('') is False # Valid IPv6 Addresses (square brakets supported for URL construction) assert utils.is_hostname('[2001:0db8:85a3:0000:0000:8a2e:0370:7334]') == \ '[2001:0db8:85a3:0000:0000:8a2e:0370:7334]' assert utils.is_hostname('2001:0db8:85a3:0000:0000:8a2e:0370:7334') == \ '[2001:0db8:85a3:0000:0000:8a2e:0370:7334]' assert utils.is_hostname('[2001:db8:002a:3256:adfe:05c0:0003:0006]') == \ '[2001:db8:002a:3256:adfe:05c0:0003:0006]' # localhost assert utils.is_hostname('::1') == '[::1]' assert utils.is_hostname('0:0:0:0:0:0:0:1') == '[0:0:0:0:0:0:0:1]' # But not if we're not checking for this: assert utils.is_hostname('[2001:0db8:85a3:0000:0000:8a2e:0370:7334]', ipv6=False) is False assert utils.is_hostname('2001:0db8:85a3:0000:0000:8a2e:0370:7334', ipv6=False) is False