Kaydet (Commit) 8b59514e authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Make IDNA return an empty string when the input is empty. Fixes #1163178.

Will backport to 2.4.
üst 8246c439
......@@ -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)
......
......@@ -630,6 +630,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):
......
......@@ -193,6 +193,8 @@ Extension Modules
Library
-------
- Bug #1163178: Make IDNA return an empty string when the input is empty.
- Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output
separator and do not output trailing semicola.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment