File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
hyperbrowser/client/managers Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -30,7 +30,11 @@ def _format_key_display(value: object) -> str:
3030
3131
3232def _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 ]
Original file line number Diff line number Diff 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" }))
You can’t perform that action at this time.
0 commit comments