Bug #767111: fix long-standing bug in urllib which caused an
AttributeError instead of an IOError when the server's response didn't contain a valid HTTP status line. (backport from rev. 54376)
This commit is contained in:
parent
12e8fe63e2
commit
027ac24650
|
@ -122,6 +122,15 @@ class urlopen_HttpTests(unittest.TestCase):
|
|||
finally:
|
||||
self.unfakehttp()
|
||||
|
||||
def test_empty_socket(self):
|
||||
"""urlopen() raises IOError if the underlying socket does not send any
|
||||
data. (#1680230) """
|
||||
self.fakehttp('')
|
||||
try:
|
||||
self.assertRaises(IOError, urllib.urlopen, 'http://something')
|
||||
finally:
|
||||
self.unfakehttp()
|
||||
|
||||
class urlretrieve_FileTests(unittest.TestCase):
|
||||
"""Test urllib.urlretrieve() on local files"""
|
||||
|
||||
|
|
|
@ -326,6 +326,10 @@ class URLopener:
|
|||
if data is not None:
|
||||
h.send(data)
|
||||
errcode, errmsg, headers = h.getreply()
|
||||
if errcode == -1:
|
||||
# something went wrong with the HTTP status line
|
||||
raise IOError, ('http protocol error', 0,
|
||||
'got a bad status line', None)
|
||||
fp = h.getfile()
|
||||
if errcode == 200:
|
||||
return addinfourl(fp, headers, "http:" + url)
|
||||
|
@ -413,6 +417,10 @@ class URLopener:
|
|||
if data is not None:
|
||||
h.send(data)
|
||||
errcode, errmsg, headers = h.getreply()
|
||||
if errcode == -1:
|
||||
# something went wrong with the HTTP status line
|
||||
raise IOError, ('http protocol error', 0,
|
||||
'got a bad status line', None)
|
||||
fp = h.getfile()
|
||||
if errcode == 200:
|
||||
return addinfourl(fp, headers, "https:" + url)
|
||||
|
|
|
@ -205,6 +205,10 @@ Extension Modules
|
|||
Library
|
||||
-------
|
||||
|
||||
- Bug #767111: fix long-standing bug in urllib which caused an
|
||||
AttributeError instead of an IOError when the server's response didn't
|
||||
contain a valid HTTP status line.
|
||||
|
||||
- Patch #1449244: Support Unicode strings in
|
||||
email.message.Message.{set_charset,get_content_charset}.
|
||||
|
||||
|
|
Loading…
Reference in New Issue