Skip to content

Commit 856929f

Browse files
Support errors-list extraction in transport error parsing
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent d0f2746 commit 856929f

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

hyperbrowser/transport/error_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def _stringify_error_value(value: Any, *, _depth: int = 0) -> str:
1010
if isinstance(value, str):
1111
return value
1212
if isinstance(value, dict):
13-
for key in ("message", "error", "detail", "msg"):
13+
for key in ("message", "error", "detail", "errors", "msg"):
1414
nested_value = value.get(key)
1515
if nested_value is not None:
1616
return _stringify_error_value(nested_value, _depth=_depth + 1)
@@ -45,7 +45,7 @@ def _fallback_message() -> str:
4545

4646
extracted_message: str
4747
if isinstance(error_data, dict):
48-
for key in ("message", "error", "detail"):
48+
for key in ("message", "error", "detail", "errors"):
4949
message = error_data.get(key)
5050
if message is not None:
5151
extracted_message = _stringify_error_value(message)

tests/test_transport_error_utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,12 @@ def test_extract_error_message_uses_response_text_for_blank_string_payload():
151151
)
152152

153153
assert message == "raw error body"
154+
155+
156+
def test_extract_error_message_extracts_errors_list_messages():
157+
message = extract_error_message(
158+
_DummyResponse({"errors": [{"msg": "first issue"}, {"msg": "second issue"}]}),
159+
RuntimeError("fallback detail"),
160+
)
161+
162+
assert message == "first issue; second issue"

0 commit comments

Comments
 (0)