------------------------------------------------------------
revno: 29
committer: Florian Fuchs <[email protected]>
branch nick: mailman.client
timestamp: Tue 2012-07-17 17:08:13 +0200
message:
catch IOError (failing to connect to Mailman API) and raise custom Exception
modified:
mailman/client/__init__.py
mailman/client/_client.py
--
lp:mailman.client
https://code.launchpad.net/~mailman-coders/mailman.client/trunk
Your team Mailman Coders is subscribed to branch lp:mailman.client.
To unsubscribe from this branch go to
https://code.launchpad.net/~mailman-coders/mailman.client/trunk/+edit-subscription
=== modified file 'mailman/client/__init__.py'
--- mailman/client/__init__.py 2012-03-23 23:24:28 +0000
+++ mailman/client/__init__.py 2012-07-17 15:08:13 +0000
@@ -21,6 +21,7 @@
__metaclass__ = type
__all__ = [
'Client',
+ 'MailmanConnectionError',
'__version__',
]
@@ -28,4 +29,4 @@
__version__ = '1.0.0a1'
-from mailman.client._client import Client
+from mailman.client._client import Client, MailmanConnectionError
=== modified file 'mailman/client/_client.py'
--- mailman/client/_client.py 2012-03-23 23:24:28 +0000
+++ mailman/client/_client.py 2012-07-17 15:08:13 +0000
@@ -21,6 +21,7 @@
__metaclass__ = type
__all__ = [
'Client',
+ 'MailmanConnectionError',
]
@@ -47,6 +48,11 @@
return (member_dict['fqdn_listname'], member_dict['address'])
+class MailmanConnectionError(Exception):
+ """Custom Exception to catch connection errors."""
+ pass
+
+
class _Connection:
"""A connection to the REST client."""
@@ -104,16 +110,19 @@
if self.basic_auth:
headers['Authorization'] = 'Basic ' + self.basic_auth
url = urljoin(self.baseurl, path)
- response, content = Http().request(url, method, data, headers)
- # If we did not get a 2xx status code, make this look like a urllib2
- # exception, for backward compatibility.
- if response.status // 100 != 2:
- raise HTTPError(url, response.status, content, response, None)
- if len(content) == 0:
- return response, None
- # XXX Work around for http://bugs.python.org/issue10038
- content = unicode(content)
- return response, json.loads(content)
+ try:
+ response, content = Http().request(url, method, data, headers)
+ # If we did not get a 2xx status code, make this look like a urllib2
+ # exception, for backward compatibility.
+ if response.status // 100 != 2:
+ raise HTTPError(url, response.status, content, response, None)
+ if len(content) == 0:
+ return response, None
+ # XXX Work around for http://bugs.python.org/issue10038
+ content = unicode(content)
+ return response, json.loads(content)
+ except IOError:
+ raise MailmanConnectionError('Could not connect to Mailman API')
class Client:
_______________________________________________
Mailman-coders mailing list
[email protected]
http://mail.python.org/mailman/listinfo/mailman-coders