MCPcopy Create free account
hub / github.com/fabioz/PyDev.Debugger / test_no_subprocess_patching

Function test_no_subprocess_patching

tests_python/test_debugger_json.py:5422–5493  ·  view source on GitHub ↗
(case_setup_multiprocessing_dap, apply_multiprocessing_patch)

Source from the content-addressed store, hash-verified

5420
5421@pytest.mark.parametrize("apply_multiprocessing_patch", [True])
5422def test_no_subprocess_patching(case_setup_multiprocessing_dap, apply_multiprocessing_patch):
5423 import threading
5424 from tests_python.debugger_unittest import AbstractWriterThread
5425
5426 def update_command_line_args(writer, args):
5427 ret = debugger_unittest.AbstractWriterThread.update_command_line_args(writer, args)
5428 ret.insert(ret.index("--client"), "--multiprocess")
5429 ret.insert(ret.index("--client"), "--debug-mode")
5430 ret.insert(ret.index("--client"), "debugpy-dap")
5431 ret.insert(ret.index("--client"), "--json-dap-http")
5432
5433 if apply_multiprocessing_patch:
5434 ret.append("apply-multiprocessing-patch")
5435 return ret
5436
5437 with case_setup_multiprocessing_dap.test_file(
5438 "_debugger_case_no_subprocess_patching.py", update_command_line_args=update_command_line_args
5439 ) as writer:
5440 json_facade = JsonFacade(writer)
5441 json_facade.write_launch()
5442
5443 break1_line = writer.get_line_index_with_content("break 1 here")
5444 break2_line = writer.get_line_index_with_content("break 2 here")
5445 json_facade.write_set_breakpoints([break1_line, break2_line])
5446
5447 server_socket = writer.server_socket
5448
5449 class SecondaryProcessWriterThread(AbstractWriterThread):
5450 TEST_FILE = writer.get_main_filename()
5451 _sequence = -1
5452
5453 class SecondaryProcessThreadCommunication(threading.Thread):
5454
5455 def run(self):
5456 from tests_python.debugger_unittest import ReaderThread
5457
5458 expected_connections = 1
5459
5460 for _ in range(expected_connections):
5461 server_socket.listen(1)
5462 self.server_socket = server_socket
5463 new_sock, addr = server_socket.accept()
5464
5465 reader_thread = ReaderThread(new_sock)
5466 reader_thread.name = " *** Multiprocess Reader Thread"
5467 reader_thread.start()
5468
5469 writer2 = SecondaryProcessWriterThread()
5470 writer2.reader_thread = reader_thread
5471 writer2.sock = new_sock
5472 json_facade2 = JsonFacade(writer2)
5473
5474 json_facade2.write_set_breakpoints([break1_line, break2_line])
5475 json_facade2.write_make_initial_run()
5476
5477 json_facade2.wait_for_thread_stopped()
5478 json_facade2.write_continue()
5479

Callers

nothing calls this directly

Calls 12

write_launchMethod · 0.95
write_set_breakpointsMethod · 0.95
write_continueMethod · 0.95
JsonFacadeClass · 0.85
test_fileMethod · 0.80
startMethod · 0.45
joinMethod · 0.45
is_aliveMethod · 0.45

Tested by

no test coverage detected