Skip to content

Commit ce2e3ab

Browse files
Fallback extension key summaries when keys unreadable
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent 98cc8db commit ce2e3ab

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

hyperbrowser/client/managers/extension_utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@ def _format_key_display(value: object) -> str:
3030

3131

3232
def _summarize_mapping_keys(mapping: Mapping[object, object]) -> str:
33-
key_names = sorted(_format_key_display(key) for key in mapping.keys())
33+
try:
34+
mapping_keys = list(mapping.keys())
35+
except Exception:
36+
return "[<unavailable keys>]"
37+
key_names = sorted(_format_key_display(key) for key in mapping_keys)
3438
if not key_names:
3539
return "[]"
3640
displayed_keys = key_names[:_MAX_DISPLAYED_MISSING_KEYS]

tests/test_extension_utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,15 @@ def __str__(self) -> str:
157157
),
158158
):
159159
parse_extension_list_response_data({_BrokenStringKey(): "value"})
160+
161+
162+
def test_parse_extension_list_response_data_missing_key_handles_unreadable_keys():
163+
class _BrokenKeysMapping(dict):
164+
def keys(self):
165+
raise RuntimeError("cannot read keys")
166+
167+
with pytest.raises(
168+
HyperbrowserError,
169+
match="Expected 'extensions' key in response but got \\[<unavailable keys>\\] keys",
170+
):
171+
parse_extension_list_response_data(_BrokenKeysMapping({"id": "ext_1"}))

0 commit comments

Comments
 (0)