summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2008-01-02 04:11:28 +0000
committerKurt B. Kaiser <kbk@shore.net>2008-01-02 04:11:28 +0000
commit0f7c25d20f68f5fc7f51e05161b0eeb34b8050de (patch)
tree14d223c501ea9deb94c92597a5229b9d21c8b4e7 /Lib
parent9fd2bcf654cbee681328cf940e52097652c9dfc6 (diff)
downloadcpython-git-0f7c25d20f68f5fc7f51e05161b0eeb34b8050de.tar.gz
Issue1177
r58207 and r58247 patch logic is reversed. I noticed this when I tried to use urllib to retrieve a file which required auth. Fix that and add a test for 401 error to verify.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_urllib.py13
-rw-r--r--Lib/urllib.py4
2 files changed, 15 insertions, 2 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index 1ca197f837..55a03daeca 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -126,6 +126,19 @@ class urlopen_HttpTests(unittest.TestCase):
finally:
self.unfakehttp()
+ def test_read_bogus(self):
+ "urlopen() should raise IOError for many error codes."
+ self.fakehttp('''HTTP/1.1 401 Authentication Required
+Date: Wed, 02 Jan 2008 03:03:54 GMT
+Server: Apache/1.3.33 (Debian GNU/Linux) mod_ssl/2.8.22 OpenSSL/0.9.7e
+Connection: close
+Content-Type: text/html; charset=iso-8859-1
+''')
+ try:
+ self.assertRaises(IOError, urllib.urlopen, "http://python.org/")
+ finally:
+ self.unfakehttp()
+
def test_empty_socket(self):
"""urlopen() raises IOError if the underlying socket does not send any
data. (#1680230) """
diff --git a/Lib/urllib.py b/Lib/urllib.py
index ad0e72b768..c6751b8f23 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -342,7 +342,7 @@ class URLopener:
'got a bad status line', None)
# According to RFC 2616, "2xx" code indicates that the client's
# request was successfully received, understood, and accepted.
- if not (200 <= errcode < 300):
+ if (200 <= errcode < 300):
return addinfourl(fp, headers, "http:" + url)
else:
if data is None:
@@ -437,7 +437,7 @@ class URLopener:
'got a bad status line', None)
# According to RFC 2616, "2xx" code indicates that the client's
# request was successfully received, understood, and accepted.
- if not (200 <= errcode < 300):
+ if (200 <= errcode < 300):
return addinfourl(fp, headers, "https:" + url)
else:
if data is None: