From e70a29c787794e808506d5a8de0f4b0fd8a60cea Mon Sep 17 00:00:00 2001 From: Joshua Date: Sat, 30 Jan 2010 15:41:50 -0600 Subject: [PATCH] Re-enable parsing of error messages. --- tweepy/binder.py | 3 +-- tweepy/parsers.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tweepy/binder.py b/tweepy/binder.py index 979b82b..e62e9c5 100644 --- a/tweepy/binder.py +++ b/tweepy/binder.py @@ -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) diff --git a/tweepy/parsers.py b/tweepy/parsers.py index de6ce1b..8599501 100644 --- a/tweepy/parsers.py +++ b/tweepy/parsers.py @@ -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): -- 2.25.1