Skip to content

Commit b112c61

Browse files
Use typed placeholders for blank transport fallback errors
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent 325f999 commit b112c61

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

hyperbrowser/transport/error_utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,12 @@
4747

4848
def _safe_to_string(value: Any) -> str:
4949
try:
50-
return str(value)
50+
normalized_value = str(value)
5151
except Exception:
5252
return f"<unstringifiable {type(value).__name__}>"
53+
if normalized_value.strip():
54+
return normalized_value
55+
return f"<{type(value).__name__}>"
5356

5457

5558
def _normalize_request_method(method: Any) -> str:

tests/test_transport_error_utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,11 @@ def __str__(self) -> str:
153153
raise RuntimeError("cannot stringify fallback error")
154154

155155

156+
class _BlankFallbackError(Exception):
157+
def __str__(self) -> str:
158+
return " "
159+
160+
156161
class _BrokenFallbackResponse:
157162
@property
158163
def text(self) -> str:
@@ -693,6 +698,12 @@ def test_extract_error_message_handles_broken_fallback_response_text():
693698
assert message == "<unstringifiable _UnstringifiableFallbackError>"
694699

695700

701+
def test_extract_error_message_uses_placeholder_for_blank_fallback_error_text():
702+
message = extract_error_message(_DummyResponse(" ", text=" "), _BlankFallbackError())
703+
704+
assert message == "<_BlankFallbackError>"
705+
706+
696707
def test_extract_error_message_extracts_errors_list_messages():
697708
message = extract_error_message(
698709
_DummyResponse({"errors": [{"msg": "first issue"}, {"msg": "second issue"}]}),

0 commit comments

Comments
 (0)