diff options
| author | Kurt B. Kaiser <kbk@shore.net> | 2008-01-02 04:11:28 +0000 |
|---|---|---|
| committer | Kurt B. Kaiser <kbk@shore.net> | 2008-01-02 04:11:28 +0000 |
| commit | 0f7c25d20f68f5fc7f51e05161b0eeb34b8050de (patch) | |
| tree | 14d223c501ea9deb94c92597a5229b9d21c8b4e7 /Lib | |
| parent | 9fd2bcf654cbee681328cf940e52097652c9dfc6 (diff) | |
| download | cpython-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.py | 13 | ||||
| -rw-r--r-- | 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 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: |
