util:http: convert urllib2.URLError into HTTPError in get_post_url.
authorW. Trevor King <wking@tremily.us>
Fri, 24 Aug 2012 12:07:46 +0000 (08:07 -0400)
committerW. Trevor King <wking@tremily.us>
Fri, 24 Aug 2012 13:32:43 +0000 (09:32 -0400)
Also rework liburl2.HTTPError handling to get both the reason and the
error code into the HTTPError message.

libbe/util/http.py

index 2f15b154c9d103f7001faa07d7131d38cfca3776..b9b1765579a0d3c660f1c09f00da2107cbcea790 100644 (file)
@@ -83,12 +83,18 @@ def get_post_url(url, get=True, data_dict=None, headers=[], agent=None):
     try:
         response = urllib2.urlopen(req)
     except urllib2.HTTPError, e:
+        lines = [
+            'We failed to connect to the server (HTTPError).',
+            'URL: {}'.format(url),
+            ]
         if hasattr(e, 'reason'):
-            msg = ('We failed to connect to the server.\nURL: {}\n'
-                   'Reason: {}').format(url, e.reason)
-        elif hasattr(e, 'code'):
-            msg = ("The server couldn't fulfill the request.\nURL: {}\n"
-                   'Error code: {}').format(url, e.code)
+            lines.append('Reason: {}'.format(e.reason))
+        lines.append('Error code: {}'.format(e.code))
+        msg = '\n'.join(lines)
+        raise HTTPError(error=e, url=url, msg=msg)
+    except urllib2.URLError, e:
+        msg = ('We failed to connect to the server (URLError).\nURL: {}\n'
+               'Reason: {}').format(url, e.reason)
         raise HTTPError(error=e, url=url, msg=msg)
     page = response.read()
     final_url = response.geturl()