Skip to content

Commit 196194a

Browse files
authored
fix(parse-errors): ensure if block execution (#1854)
When error messages contains more than one object, ensure that they are all parsed.
1 parent 84071a4 commit 196194a

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

jira/resilientsession.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,11 @@ def parse_errors(resp: Response) -> list[str]:
105105
if "message" in resp_data:
106106
# Jira 5.1 errors
107107
parsed_errors = [resp_data["message"]]
108-
elif "errorMessage" in resp_data:
108+
if "errorMessage" in resp_data:
109109
# Sometimes Jira returns `errorMessage` as a message error key
110110
# for example for the "Service temporary unavailable" error
111111
parsed_errors = [resp_data["errorMessage"]]
112-
elif "errorMessages" in resp_data:
112+
if "errorMessages" in resp_data:
113113
# Jira 5.0.x error messages sometimes come wrapped in this array
114114
# Sometimes this is present but empty
115115
error_messages = resp_data["errorMessages"]
@@ -118,7 +118,7 @@ def parse_errors(resp: Response) -> list[str]:
118118
parsed_errors = list(error_messages)
119119
else:
120120
parsed_errors = [error_messages]
121-
elif "errors" in resp_data:
121+
if "errors" in resp_data:
122122
resp_errors = resp_data["errors"]
123123
if len(resp_errors) > 0 and isinstance(resp_errors, dict):
124124
# Catching only 'errors' that are dict. See https://github.com/pycontribs/jira/issues/350

tests/test_resilientsession.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,12 @@ def test_status_codes_retries(
159159
(500, {}, '{"errorMessages": "err1"}', ["err1"]),
160160
(500, {}, '{"errorMessages": ["err1", "err2"]}', ["err1", "err2"]),
161161
(500, {}, '{"errors": {"code1": "err1", "code2": "err2"}}', ["err1", "err2"]),
162+
(
163+
500,
164+
{},
165+
'{"errorMessages": [], "errors": {"code1": "err1", "code2": "err2"}}',
166+
["err1", "err2"],
167+
),
162168
]
163169

164170

0 commit comments

Comments
 (0)