From 0f7c25d20f68f5fc7f51e05161b0eeb34b8050de Mon Sep 17 00:00:00 2001 From: "Kurt B. Kaiser" Date: Wed, 2 Jan 2008 04:11:28 +0000 Subject: 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. --- Lib/test/test_urllib.py | 13 +++++++++++++ Lib/urllib.py | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py index 1ca197f..55a03da 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 ad0e72b..c6751b8 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: -- cgit v0.12