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

Method check_case

tests_python/debugger_unittest.py:446–497  ·  view source on GitHub ↗
(self, writer_class, wait_for_port=True, wait_for_initialization=True, dap=False)

Source from the content-addressed store, hash-verified

444
445 @contextmanager
446 def check_case(self, writer_class, wait_for_port=True, wait_for_initialization=True, dap=False):
447 try:
448 if callable(writer_class):
449 writer = writer_class()
450 else:
451 writer = writer_class
452 try:
453 writer.start()
454 if wait_for_port:
455 wait_for_condition(lambda: hasattr(writer, "port"))
456 self.writer = writer
457
458 args = self.get_command_line()
459
460 args = self.add_command_line_args(args, dap=dap)
461
462 if SHOW_OTHER_DEBUG_INFO:
463 print("executing: %s" % (" ".join(args),))
464
465 with self.run_process(args, writer) as dct_with_stdout_stder:
466 try:
467 if not wait_for_initialization:
468 # The use-case for this is that the debugger can't even start-up in this
469 # scenario, as such, sleep a bit so that the output can be collected.
470 time.sleep(1)
471 elif wait_for_port:
472 wait_for_condition(lambda: writer.finished_initialization)
473 except TimeoutError:
474 sys.stderr.write("Timed out waiting for initialization\n")
475 sys.stderr.write(
476 "stdout:\n%s\n\nstderr:\n%s\n"
477 % (
478 "".join(dct_with_stdout_stder["stdout"]),
479 "".join(dct_with_stdout_stder["stderr"]),
480 )
481 )
482 raise
483 finally:
484 writer.get_stdout = lambda: "".join(dct_with_stdout_stder["stdout"])
485 writer.get_stderr = lambda: "".join(dct_with_stdout_stder["stderr"])
486
487 yield writer
488 finally:
489 writer.do_kill()
490 writer.log = []
491
492 stdout = dct_with_stdout_stder["stdout"]
493 stderr = dct_with_stdout_stder["stderr"]
494 writer.additional_output_checks("".join(stdout), "".join(stderr))
495 except IgnoreFailureError:
496 sys.stderr.write("Test finished with ignored failure.\n")
497 return
498
499 def create_process(self, args, writer):
500 env = writer.get_environ() if writer is not None else None

Callers 2

obtain_resultsMethod · 0.80
test_fileMethod · 0.80

Calls 9

get_command_lineMethod · 0.95
add_command_line_argsMethod · 0.95
run_processMethod · 0.95
wait_for_conditionFunction · 0.70
startMethod · 0.45
joinMethod · 0.45
writeMethod · 0.45
do_killMethod · 0.45

Tested by

no test coverage detected