MCPcopy Index your code
hub / github.com/fabioz/PyDev.Debugger / test_hex_variables

Function test_hex_variables

tests_python/test_debugger_json.py:3198–3271  ·  view source on GitHub ↗
(case_setup_dap)

Source from the content-addressed store, hash-verified

3196
3197
3198def test_hex_variables(case_setup_dap):
3199 with case_setup_dap.test_file("_debugger_case_local_variables_hex.py") as writer:
3200 json_facade = JsonFacade(writer)
3201
3202 writer.write_add_breakpoint(writer.get_line_index_with_content("Break here"))
3203
3204 json_facade.write_make_initial_run()
3205
3206 json_hit = json_facade.wait_for_thread_stopped()
3207
3208 # : :type stack_trace_response: StackTraceResponse
3209 # : :type stack_trace_response_body: StackTraceResponseBody
3210 # : :type stack_frame: StackFrame
3211 stack_trace_request = json_facade.write_request(
3212 pydevd_schema.StackTraceRequest(pydevd_schema.StackTraceArguments(threadId=json_hit.thread_id))
3213 )
3214 stack_trace_response = json_facade.wait_for_response(stack_trace_request)
3215 stack_trace_response_body = stack_trace_response.body
3216 assert len(stack_trace_response_body.stackFrames) == 2
3217 stack_frame = next(iter(stack_trace_response_body.stackFrames))
3218 assert stack_frame["name"] == "Call"
3219 assert stack_frame["source"]["path"].endswith("_debugger_case_local_variables_hex.py")
3220
3221 name_to_scope = json_facade.get_name_to_scope(stack_frame["id"])
3222
3223 scope = name_to_scope["Locals"]
3224 frame_variables_reference = scope.variablesReference
3225 assert isinstance(frame_variables_reference, int)
3226
3227 fmt = {"hex": True}
3228 variables_request = json_facade.write_request(
3229 pydevd_schema.VariablesRequest(pydevd_schema.VariablesArguments(frame_variables_reference, format=fmt))
3230 )
3231 variables_response = json_facade.wait_for_response(variables_request)
3232
3233 # : :type variables_response: VariablesResponse
3234 variable_for_test_1, variable_for_test_2, variable_for_test_3, variable_for_test_4 = sorted(
3235 list(v for v in variables_response.body.variables if v["name"].startswith("variables_for_test")), key=lambda v: v["name"]
3236 )
3237 assert variable_for_test_1 == {
3238 "name": "variables_for_test_1",
3239 "value": "0x64",
3240 "type": "int",
3241 "evaluateName": "variables_for_test_1",
3242 "variablesReference": 0,
3243 }
3244
3245 assert isinstance(variable_for_test_2.pop("variablesReference"), int)
3246 assert variable_for_test_2 == {
3247 "name": "variables_for_test_2",
3248 "value": "[0x1, 0xa, 0x64]",
3249 "type": "list",
3250 "evaluateName": "variables_for_test_2",
3251 }
3252
3253 assert isinstance(variable_for_test_3.pop("variablesReference"), int)
3254 assert variable_for_test_3 == {
3255 "name": "variables_for_test_3",

Callers

nothing calls this directly

Calls 11

write_requestMethod · 0.95
wait_for_responseMethod · 0.95
get_name_to_scopeMethod · 0.95
write_continueMethod · 0.95
JsonFacadeClass · 0.85
test_fileMethod · 0.80
write_add_breakpointMethod · 0.80
popMethod · 0.80

Tested by

no test coverage detected