Add support for punycode TLDs
authorEvgeni Kunev <evgeni.kunev@gmail.com>
Mon, 18 Aug 2014 11:25:39 +0300
changeset 36 af839b9c0ed1
parent 35 0de2468a27e8
child 37 8ad334b5363b
Add support for punycode TLDs
test/test_nicclient.py
whois/whois.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/test_nicclient.py	Mon Aug 18 11:25:39 2014 +0300
@@ -0,0 +1,17 @@
+# coding=utf-8
+
+import unittest
+from whois.whois import NICClient
+
+
+class TestNICClient(unittest.TestCase):
+    def setUp(self):
+        self.client = NICClient()
+
+    def test_choose_server(self):
+        domain = 'рнидс.срб'
+        chosen = self.client.choose_server(domain)
+        self.assertEqual(
+            chosen,
+            'срб'.decode('utf-8').encode('idna') + '.whois-servers.net'
+        )
--- a/whois/whois.py	Fri Aug 15 17:11:52 2014 +0300
+++ b/whois/whois.py	Mon Aug 18 11:25:39 2014 +0300
@@ -164,6 +164,8 @@
 
     def choose_server(self, domain):
         """Choose initial lookup NIC host"""
+        if type(domain) is not unicode:
+            domain = domain.decode('utf-8').encode('idna')
         if (domain.endswith("-NORID")):
             return NICClient.NORIDHOST
         pos = domain.rfind('.')