Re-enable parsing of error messages.
authorJoshua <jroesslein@gmail.com>
Sat, 30 Jan 2010 21:41:50 +0000 (15:41 -0600)
committerJoshua <jroesslein@gmail.com>
Sat, 30 Jan 2010 21:41:50 +0000 (15:41 -0600)
tweepy/binder.py
tweepy/parsers.py

index 979b82be35f9519081a2811ebb831acb760f1910..e62e9c521682e90f6bd8350a4795010117f6a196 100644 (file)
@@ -156,8 +156,7 @@ def bind_api(**config):
             self.api.last_response = resp
             if resp.status != 200:
                 try:
-                    #TODO: parse error message
-                    raise Exception
+                    error_msg = self.api.parser.parse_error(self, resp.read())
                 except Exception:
                     error_msg = "Twitter error response: status code = %s" % resp.status
                 raise TweepError(error_msg)
index de6ce1bc7e544854d1bbd60a68bf15c06063cd6d..8599501b2227ebd1e83baaae5de6f610c7543989 100644 (file)
@@ -16,6 +16,14 @@ class Parser(object):
         """
         raise NotImplementedError
 
+    def parse_error(self, payload):
+        """
+        Parse the error message from payload.
+        If unable to parse the message, throw an exception
+        and default error message will be used.
+        """
+        raise NotImplementedError
+
 
 class JSONParser(Parser):
 
@@ -36,6 +44,9 @@ class JSONParser(Parser):
         else:
             return json
 
+    def parse_error(self, payload):
+        return self.json_lib.loads(payload)['error']
+
 
 class ModelParser(JSONParser):