File: _debugger_case_no_subprocess_patching.py

package info (click to toggle)
pydevd 3.3.0%2Bds-4
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 13,892 kB
  • sloc: python: 77,508; cpp: 1,869; sh: 368; makefile: 50; ansic: 4
file content (35 lines) | stat: -rw-r--r-- 952 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import subprocess
import sys
import os
from contextlib import contextmanager
env = os.environ.copy()
pythonpath = env.get('PYTHONPATH', '')
env['PYTHONPATH'] = os.path.dirname(__file__)


def call():
    print("called")  # break 1 here


@contextmanager
def dummy_context_manager():
    yield


if __name__ == '__main__':
    if 'apply-multiprocessing-patch' in sys.argv:
        context_manager = dummy_context_manager  # It's applied by default.
    else:
        import pydevd
        context_manager = pydevd.skip_subprocess_arg_patch

    with context_manager():
        p = subprocess.Popen(
            [sys.executable, '-c', 'import _debugger_case_no_subprocess_patching;_debugger_case_no_subprocess_patching.call()'],
            stdout=subprocess.PIPE,
            env=env,
        )

    stdout, stderr = p.communicate()
    assert b'called' in stdout, 'Did not find b"called" in: %s' % (stdout,)
    print('TEST SUCEEDED!')  # break 2 here