From 32f00f2a14e65f9caf96c070d0a195abd0c75cf4 Mon Sep 17 00:00:00 2001 From: Harmon Date: Wed, 9 Jun 2021 12:51:52 -0500 Subject: [PATCH] Handle "error" key in response JSON when initializing HTTPException --- tweepy/errors.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tweepy/errors.py b/tweepy/errors.py index d7b0767..fe595ec 100644 --- a/tweepy/errors.py +++ b/tweepy/errors.py @@ -25,24 +25,23 @@ class HTTPException(TweepyException): except json.JSONDecodeError: super().__init__(f"{response.status_code} {response.reason}") else: - error_text = [] + errors = response_json.get("errors", []) # Use := when support for Python 3.7 is dropped - if "errors" not in response_json: - super().__init__(f"{response.status_code} {response.reason}") - return - for error in response_json["errors"]: + if "error" in response_json: + errors.append(response_json["error"]) + error_text = "" + for error in errors: self.api_errors.append(error) 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.append(f"{error['code']} - {error['message']}") + error_text += f"\n{error['code']} - {error['message']}" elif "message" in error: - error_text.append(error["message"]) - error_text = '\n'.join(error_text) + error_text += '\n' + error["message"] super().__init__( - f"{response.status_code} {response.reason}\n{error_text}" + f"{response.status_code} {response.reason}{error_text}" ) -- 2.25.1