Tests for international domain handling

main
Bob Mottram 2021-01-25 12:24:40 +00:00
parent 7ac901980f
commit fd12451f5a
2 changed files with 20 additions and 6 deletions

View File

@ -33,6 +33,7 @@ from follow import clearFollows
from follow import clearFollowers
from follow import sendFollowRequestViaServer
from follow import sendUnfollowRequestViaServer
from utils import decodedHost
from utils import getFullDomain
from utils import validNickname
from utils import firstParagraphFromString
@ -3059,9 +3060,23 @@ def testMastoApi():
assert nickname2 == nickname
def testDomainHandling():
print('testDomainHandling')
testDomain = 'localhost'
assert decodedHost(testDomain) == testDomain
testDomain = '127.0.0.1:60'
assert decodedHost(testDomain) == testDomain
testDomain = '192.168.5.153'
assert decodedHost(testDomain) == testDomain
testDomain = 'xn--espaa-rta.icom.museum'
print(decodedHost(testDomain))
assert decodedHost(testDomain) == "españa.icom.museum"
def runAllTests():
print('Running tests...')
testFunctions()
testDomainHandling()
testMastoApi()
testLinksWithinPost()
testReplyToPublicPost()

View File

@ -36,12 +36,11 @@ def decodedHost(host: str) -> str:
https://en.wikipedia.org/wiki/Internationalized_domain_name
"""
if ':' not in host:
if not _localNetworkHost(host):
if not host.endswith('.onion'):
if not host.endswith('.i2p'):
# For domains on ports numbers don't use idna
# eg. mydomain:8000
return idna.decode(host)
# eg. mydomain:8000
if not _localNetworkHost(host):
if not host.endswith('.onion'):
if not host.endswith('.i2p'):
return idna.decode(host)
return host