def test_attach(run_as, wait_for_attach, is_attached, break_into): testfile = os.path.join(get_test_root('attach'), 'attach1.py') with DebugSession() as session: env = { 'PTVSD_TEST_HOST': 'localhost', 'PTVSD_TEST_PORT': str(session.ptvsd_port), } if wait_for_attach == 'waitOn': env['PTVSD_WAIT_FOR_ATTACH'] = '1' if is_attached == 'attachCheckOn': env['PTVSD_IS_ATTACHED'] = '1' if break_into == 'break': env['PTVSD_BREAK_INTO_DBG'] = '1' session.initialize( target=(run_as, testfile), start_method='launch', ignore_unobserved=[Event('continued')], env=env, use_backchannel=True, ) session.start_debugging() if wait_for_attach == 'waitOn': assert session.read_json() == 'wait_for_attach' if is_attached == 'attachCheckOn': assert session.read_json() == 'is_attached' if break_into == 'break': assert session.read_json() == 'break_into_debugger' hit = session.wait_for_thread_stopped() frames = hit.stacktrace.body['stackFrames'] assert 32 == frames[0]['line'] else: # pause test session.write_json('pause_test') session.send_request('pause').wait_for_response(freeze=False) hit = session.wait_for_thread_stopped(reason='pause') frames = hit.stacktrace.body['stackFrames'] # Note: no longer asserting line as it can even stop on different files # (such as as backchannel.py). # assert frames[0]['line'] in [27, 28, 29] session.send_request('continue').wait_for_response(freeze=False) session.wait_for_exit()
def test_package_launch(): bp_line = 2 cwd = get_test_root('testpkgs') testfile = os.path.join(cwd, 'pkg1', '__main__.py') with DebugSession() as session: session.initialize( target=('module', 'pkg1'), start_method='launch', ignore_unobserved=[Event('continued')], cwd=cwd, ) session.set_breakpoints(testfile, [bp_line]) session.start_debugging() hit = session.wait_for_thread_stopped() frames = hit.stacktrace.body['stackFrames'] assert bp_line == frames[0]['line'] session.send_request('continue').wait_for_response(freeze=False) session.wait_for_exit()
# for license information. from __future__ import print_function, with_statement, absolute_import import os.path import platform import pytest import sys from pytests.helpers.pattern import ANY from pytests.helpers.session import DebugSession from pytests.helpers.timeline import Event from pytests.helpers.webhelper import get_web_content, wait_for_connection from pytests.helpers.pathutils import get_test_root, compare_path FLASK1_ROOT = get_test_root('flask1') FLASK1_APP = os.path.join(FLASK1_ROOT, 'app.py') FLASK1_TEMPLATE = os.path.join(FLASK1_ROOT, 'templates', 'hello.html') FLASK_LINK = 'http://127.0.0.1:5000/' FLASK_PORT = 5000 def _initialize_flask_session_no_multiproc(session, start_method): env = { 'FLASK_APP': 'app.py', 'FLASK_ENV': 'development', 'FLASK_DEBUG': '0', } if platform.system() != 'Windows': locale = 'en_US.utf8' if platform.system( ) == 'Linux' else 'en_US.UTF-8'
# for license information. from __future__ import print_function, with_statement, absolute_import import os.path import pytest import sys from pytests.helpers.pattern import ANY from pytests.helpers.session import DebugSession from pytests.helpers.timeline import Event from pytests.helpers.pathutils import get_test_root, compare_path from pytests.helpers.webhelper import get_url_from_str, get_web_content, wait_for_connection from pytests.helpers.session import START_METHOD_LAUNCH, START_METHOD_CMDLINE DJANGO1_ROOT = get_test_root('django1') DJANGO1_MANAGE = os.path.join(DJANGO1_ROOT, 'app.py') DJANGO1_TEMPLATE = os.path.join(DJANGO1_ROOT, 'templates', 'hello.html') DJANGO_LINK = 'http://127.0.0.1:8000/' DJANGO_PORT = 8000 @pytest.mark.parametrize('bp_file, bp_line, bp_name', [ (DJANGO1_MANAGE, 40, 'home'), (DJANGO1_TEMPLATE, 8, 'Django Template'), ]) @pytest.mark.parametrize('start_method', [START_METHOD_LAUNCH, START_METHOD_CMDLINE]) @pytest.mark.skipif(sys.version_info < (3, 0), reason='Bug #923') @pytest.mark.timeout(60) def test_django_breakpoint_no_multiproc(debug_session, bp_file, bp_line,
# Licensed under the MIT License. See LICENSE in the project root # for license information. from __future__ import print_function, with_statement, absolute_import import os.path import pytest import sys import re from pytests.helpers.pathutils import get_test_root, compare_path from pytests.helpers.session import DebugSession from pytests.helpers.timeline import Event from pytests.helpers.pattern import ANY BP_TEST_ROOT = get_test_root('bp') def test_path_with_ampersand(run_as, start_method): bp_line = 4 testfile = os.path.join(BP_TEST_ROOT, 'a&b', 'test.py') with DebugSession() as session: session.initialize( target=(run_as, testfile), start_method=start_method, ignore_unobserved=[Event('continued')], ) session.set_breakpoints(testfile, [bp_line]) session.start_debugging() hit = session.wait_for_thread_stopped('breakpoint')