From 2da4452870093f930fb8808861bcec809a2d4ccf Mon Sep 17 00:00:00 2001 From: Harmon Date: Thu, 21 Apr 2022 18:22:28 -0500 Subject: [PATCH] Handle "error" key of response being a string in HTTPException --- tweepy/errors.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tweepy/errors.py b/tweepy/errors.py index 309c6be86..cea3efe79 100644 --- a/tweepy/errors.py +++ b/tweepy/errors.py @@ -45,16 +45,26 @@ def __init__(self, response): super().__init__(f"{response.status_code} {response.reason}") else: errors = response_json.get("errors", []) + # Use := when support for Python 3.7 is dropped if "error" in response_json: errors.append(response_json["error"]) + error_text = "" + for error in errors: self.api_errors.append(error) + + if isinstance(error, str): + self.api_messages.append(error) + error_text += '\n' + error + continue + if "code" in error: self.api_codes.append(error["code"]) if "message" in error: self.api_messages.append(error["message"]) + if "code" in error and "message" in error: error_text += f"\n{error['code']} - {error['message']}" elif "message" in error: