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

Function test_gevent_subprocess_python

tests_python/test_debugger_json.py:4436–4502  ·  view source on GitHub ↗
(case_setup_multiprocessing_dap)

Source from the content-addressed store, hash-verified

4434
4435@pytest.mark.skipif(not TEST_GEVENT, reason="Gevent not installed.")
4436def test_gevent_subprocess_python(case_setup_multiprocessing_dap):
4437 import threading
4438 from tests_python.debugger_unittest import AbstractWriterThread
4439
4440 def get_environ(writer):
4441 env = os.environ.copy()
4442 env["GEVENT_SUPPORT"] = "True"
4443 env["CALL_PYTHON_SUB"] = "1"
4444 return env
4445
4446 with case_setup_multiprocessing_dap.test_file(
4447 "_debugger_case_gevent_subprocess.py",
4448 get_environ=get_environ,
4449 ) as writer:
4450 json_facade = JsonFacade(writer)
4451 json_facade.write_launch()
4452
4453 break1_line = writer.get_line_index_with_content("print('foo called')")
4454 json_facade.write_set_breakpoints([break1_line])
4455
4456 server_socket = writer.server_socket
4457 secondary_finished_ok = [False]
4458
4459 class SecondaryProcessWriterThread(AbstractWriterThread):
4460 TEST_FILE = writer.get_main_filename()
4461 _sequence = -1
4462
4463 class SecondaryProcessThreadCommunication(threading.Thread):
4464
4465 def run(self):
4466 from tests_python.debugger_unittest import ReaderThread
4467
4468 server_socket.listen(1)
4469 self.server_socket = server_socket
4470 new_sock, addr = server_socket.accept()
4471
4472 reader_thread = ReaderThread(new_sock)
4473 reader_thread.name = " *** Multiprocess Reader Thread"
4474 reader_thread.start()
4475
4476 writer2 = SecondaryProcessWriterThread()
4477 writer2.reader_thread = reader_thread
4478 writer2.sock = new_sock
4479 json_facade2 = JsonFacade(writer2)
4480
4481 json_facade2.write_set_breakpoints(
4482 [
4483 break1_line,
4484 ]
4485 )
4486 json_facade2.write_make_initial_run()
4487
4488 json_facade2.wait_for_thread_stopped()
4489 json_facade2.write_continue()
4490 secondary_finished_ok[0] = True
4491
4492 secondary_process_thread_communication = SecondaryProcessThreadCommunication()
4493 secondary_process_thread_communication.start()

Callers

nothing calls this directly

Calls 10

write_launchMethod · 0.95
write_set_breakpointsMethod · 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