]> granicus.if.org Git - python/commitdiff
RFE [ 1216944 ] Add Error Code Dictionary to urllib2
authorGeorg Brandl <georg@python.org>
Thu, 14 Jul 2005 06:40:47 +0000 (06:40 +0000)
committerGeorg Brandl <georg@python.org>
Thu, 14 Jul 2005 06:40:47 +0000 (06:40 +0000)
Doc/lib/liburllib2.tex
Lib/test/test_urllib2.py
Lib/urllib2.py
Misc/NEWS

index 6f9395cdff2152bd9af2d64fded433505e3c2f7c..532c223ad9ccc91345f64bbabde97151a315ae2a 100644 (file)
@@ -71,6 +71,15 @@ set to \code{500}.
 \end{funcdesc}
 
 
+The following attribute is defined:
+
+\begin{datadesc}{httpresponses}
+A mapping between HTTP status codes and the W3C names.
+
+Example: \code{urllib2.httpresponses[404]} is \code{'Not Found'}.
+\versionadded{2.5}
+\end{datadesc}
+
 The following exceptions are raised as appropriate:
 
 \begin{excdesc}{URLError}
index c68d244a6c8693baf5e77cd3ad11c342e5c1e067..1c0b7dafd3187fe891ca921e75e1b759b2fa566f 100644 (file)
@@ -40,6 +40,10 @@ class TrivialTests(unittest.TestCase):
 
         buf = f.read()
         f.close()
+        
+    def test_statudict(self):
+        # test the new-in-2.5 httpresponses dictionary
+        self.assertEquals(urllib2.httpresponses[404], "Not Found")
 
 
 class MockOpener:
index 13c1f1e5a7da9fa430799e8af6656f7fade39842..7202507743c8f296cdb0f3cfd8a1dff482fa356f 100644 (file)
@@ -1293,3 +1293,52 @@ class OpenerFactory:
             if inspect.isclass(ph):
                 ph = ph()
             opener.add_handler(ph)
+
+# Mapping status codes to official W3C names
+httpresponses = {
+    100: 'Continue',
+    101: 'Switching Protocols',
+    
+    200: 'OK',
+    201: 'Created',
+    202: 'Accepted',
+    203: 'Non-Authoritative Information',
+    204: 'No Content',
+    205: 'Reset Content',
+    206: 'Partial Content',
+    
+    300: 'Multiple Choices',
+    301: 'Moved Permanently',
+    302: 'Found',
+    303: 'See Other',
+    304: 'Not Modified',
+    305: 'Use Proxy',
+    306: '(Unused)',
+    307: 'Temporary Redirect',
+    
+    400: 'Bad Request',
+    401: 'Unauthorized',
+    402: 'Payment Required',
+    403: 'Forbidden',
+    404: 'Not Found',
+    405: 'Method Not Allowed',
+    406: 'Not Acceptable',
+    407: 'Proxy Authentication Required',
+    408: 'Request Timeout',
+    409: 'Conflict',
+    410: 'Gone',
+    411: 'Length Required',
+    412: 'Precondition Failed',
+    413: 'Request Entity Too Large',
+    414: 'Request-URI Too Long',
+    415: 'Unsupported Media Type',
+    416: 'Requested Range Not Satisfiable',
+    417: 'Expectation Failed',
+    
+    500: 'Internal Server Error',
+    501: 'Not Implemented',
+    502: 'Bad Gateway',
+    503: 'Service Unavailable',
+    504: 'Gateway Timeout',
+    505: 'HTTP Version Not Supported',
+}
index 13c7761c0af1c39404a1ac881c1b0b263546363c..219586fb5358cfc2fd1d1498a5e3b13e23ac60e2 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -168,6 +168,9 @@ Extension Modules
 Library
 -------
 
+- urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
+  to W3C name (404 -> 'Not Found'). RFE #1216944.
+
 - Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
   as this can cause problems with apps closing all file descriptors.