]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Make IDNA return an empty string when the input is empty. Fixes #1163178.
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 25 Aug 2005 11:04:04 +0000 (11:04 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 25 Aug 2005 11:04:04 +0000 (11:04 +0000)
Lib/encodings/idna.py
Lib/test/test_codecs.py
Misc/NEWS

index 48142157fdf5a7fef8ddbaa6520e258a2e8d4675..f8a31d88736a83cd6342fb6e807793a79833f592 100644 (file)
@@ -149,6 +149,9 @@ class Codec(codecs.Codec):
             # IDNA is quite clear that implementations must be strict
             raise UnicodeError, "unsupported error handling "+errors
 
+        if not input:
+            return "", 0
+
         result = []
         labels = dots.split(input)
         if labels and len(labels[-1])==0:
@@ -166,6 +169,9 @@ class Codec(codecs.Codec):
         if errors != 'strict':
             raise UnicodeError, "Unsupported error handling "+errors
 
+        if not input:
+            return u"", 0
+
         # IDNA allows decoding to operate on Unicode strings, too.
         if isinstance(input, unicode):
             labels = dots.split(input)
index 78544b2110b4e677a36e60c7dbc26e49cd2aa83c..96ed5b82523b1b16356d7c0a7cea94c3fe72fbb6 100644 (file)
@@ -632,6 +632,12 @@ class CodecTest(unittest.TestCase):
     def test_builtin(self):
         self.assertEquals(unicode("python.org", "idna"), u"python.org")
 
+    def test_stream(self):
+        import StringIO
+        r = codecs.getreader("idna")(StringIO.StringIO("abc"))
+        r.read(3)
+        self.assertEquals(r.read(), u"")
+
 class CodecsModuleTest(unittest.TestCase):
 
     def test_decode(self):
index 234401ac3f70d2fd05b8a04354691fdd45a5f669..3710ab54c112ad16edb2a40012c34430ba24a820 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -68,6 +68,8 @@ Extension Modules
 Library
 -------
 
+- Bug #1163178: Make IDNA return an empty string when the input is empty.
+
 - Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
 
 - Bug #1178484: Return complete lines from codec stream readers