]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue1177
authorKurt B. Kaiser <kbk@shore.net>
Wed, 2 Jan 2008 04:11:28 +0000 (04:11 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Wed, 2 Jan 2008 04:11:28 +0000 (04:11 +0000)
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
Lib/urllib.py

index 1ca197f837a9c63f3d90417ee4a45d9632a05e44..55a03daecad44fabc772d34da4603782606da1fb 100644 (file)
@@ -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) """
index ad0e72b76845a822355d95aea87cfb33f9205287..c6751b8f23d982ff85e29d477e6a75b0d4708c62 100644 (file)
@@ -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: