mirror of
https://github.com/microsoft/debugpy.git
synced 2025-12-23 08:48:12 +00:00
Enable exception breakpoint (#585)
* Enable exception breakpoint * Fix typo * Fix cmd version platform
This commit is contained in:
parent
a8b2fee5c8
commit
cc91ab5d1f
3 changed files with 37 additions and 30 deletions
|
|
@ -107,8 +107,8 @@ def assert_is_subset(received_message, expected_message):
|
|||
return True
|
||||
except ValueError:
|
||||
message.append('Path: body{}'.format(current_path))
|
||||
message.append('Expected:{}'.format(received))
|
||||
message.append('Receievd:{}'.format(expected))
|
||||
message.append('Received:{}'.format(received))
|
||||
message.append('Expected:{}'.format(expected))
|
||||
raise AssertionError('\n'.join(message))
|
||||
except KeyError:
|
||||
message.append('Key not found: body{}'.format(current_path))
|
||||
|
|
|
|||
|
|
@ -378,8 +378,7 @@ class BreakpointTests(VSCFlowTest, unittest.TestCase):
|
|||
self.assertIn('2 4 4', out)
|
||||
self.assertIn('ka-boom', err)
|
||||
|
||||
# TODO: fix this
|
||||
@unittest.skip('not working right')
|
||||
# @unittest.skip('not working right')
|
||||
def test_exception_breakpoints(self):
|
||||
self.vsc.PRINT_RECEIVED_MESSAGES = True
|
||||
done, script = self._set_lock('h')
|
||||
|
|
@ -387,8 +386,7 @@ class BreakpointTests(VSCFlowTest, unittest.TestCase):
|
|||
config = {
|
||||
'breakpoints': [],
|
||||
'excbreakpoints': [
|
||||
#{'filters': ['raised']},
|
||||
{'filters': ['uncaught']},
|
||||
{'filters': ['raised']},
|
||||
],
|
||||
}
|
||||
with captured_stdio() as (stdout, _):
|
||||
|
|
@ -409,14 +407,17 @@ class BreakpointTests(VSCFlowTest, unittest.TestCase):
|
|||
got.append(req['arguments'])
|
||||
self.assertNotEqual(req['command'], 'setBreakpoints')
|
||||
self.assertEqual(got, config['excbreakpoints'])
|
||||
self.assert_vsc_received(received, [
|
||||
self.new_event(
|
||||
'stopped',
|
||||
if sys.version_info >= (3, 7):
|
||||
description = "MyError('ka-boom')"
|
||||
else:
|
||||
description = "MyError('ka-boom',)"
|
||||
self.assert_vsc_received_fixing_events(received, [
|
||||
('stopped', dict(
|
||||
reason='exception',
|
||||
threadId=tid,
|
||||
text=None,
|
||||
description=None,
|
||||
),
|
||||
text='MyError',
|
||||
description=description
|
||||
)),
|
||||
])
|
||||
self.assertIn('2 4 4', out)
|
||||
self.assertIn('ka-boom', out)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import os
|
||||
import platform
|
||||
import sys
|
||||
import unittest
|
||||
from textwrap import dedent
|
||||
|
|
@ -95,6 +96,11 @@ class LifecycleTest(RunningTest):
|
|||
pass
|
||||
|
||||
|
||||
def _get_cmd_version():
|
||||
plat = 'WINDOWS' if platform.system() == 'Windows' else 'UNIX'
|
||||
return '1.1\t%s\tID' % plat
|
||||
|
||||
|
||||
class InitializeTests(LifecycleTest, unittest.TestCase):
|
||||
|
||||
@unittest.skip('tested via test_lifecycle.py')
|
||||
|
|
@ -1042,7 +1048,7 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
'1\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.expected_pydevd_request(
|
||||
'2\tpython-line\tspam.py\t15\tNone\ti == 3\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_with_hit_condition(self):
|
||||
|
|
@ -1098,7 +1104,7 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
'4\tpython-line\tspam.py\t25\tNone\tNone\tNone\t@HIT@ % 5 == 0\tNone'), # noqa
|
||||
self.expected_pydevd_request(
|
||||
'5\tpython-line\tspam.py\t30\tNone\tNone\tNone\tx\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_with_logpoint(self):
|
||||
|
|
@ -1147,7 +1153,7 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
'3\tpython-line\tspam.py\t20\tNone\tNone\t"{}".format(a)\tNone\tTrue'), # noqa
|
||||
self.expected_pydevd_request(
|
||||
'4\tpython-line\tspam.py\t25\tNone\tNone\t"{}+{}=Something".format(a, b)\tNone\tTrue'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_with_existing(self):
|
||||
|
|
@ -1212,7 +1218,7 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
'4\tpython-line\tspam.py\t2\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.expected_pydevd_request(
|
||||
'5\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_multiple_files(self):
|
||||
|
|
@ -1249,10 +1255,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tpython-line\teggs.py\t17\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_vs_django(self):
|
||||
|
|
@ -1288,10 +1294,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tdjango-line\teggs.html\t17\tNone\tNone\tNone\tNone\tNone'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_vs_django_logpoint(self):
|
||||
|
|
@ -1327,10 +1333,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\t' + repr("Hello World") + '\tNone\tTrue'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tdjango-line\teggs.html\t17\tNone\tNone\t' + repr("Hello Django World") + '\tNone\tTrue'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_vs_flask_jinja2(self):
|
||||
|
|
@ -1366,10 +1372,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tjinja2-line\teggs.html\t17\tNone\tNone\tNone\tNone\tNone'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_vs_flask_jinja2_logpoint(self):
|
||||
|
|
@ -1405,10 +1411,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\t' + repr("Hello World") + '\tNone\tTrue'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tjinja2-line\teggs.html\t17\tNone\tNone\t' + repr("Hello Jinja World") + '\tNone\tTrue'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_vsc_flask_jinja2(self):
|
||||
|
|
@ -1444,10 +1450,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tjinja2-line\teggs.html\t17\tNone\tNone\tNone\tNone\tNone'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
def test_vsc_jinja2(self):
|
||||
|
|
@ -1483,10 +1489,10 @@ class SetBreakpointsTests(NormalRequestTest, unittest.TestCase):
|
|||
self.assert_received(self.debugger, [
|
||||
self.expected_pydevd_request(
|
||||
'1\tpython-line\tspam.py\t10\tNone\tNone\tNone\tNone\tNone'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
self.expected_pydevd_request(
|
||||
'2\tjinja2-line\teggs.html\t17\tNone\tNone\tNone\tNone\tNone'), # noqa
|
||||
self.debugger_msgs.new_request(CMD_VERSION, '1.1\tUNIX\tID'),
|
||||
self.debugger_msgs.new_request(CMD_VERSION, _get_cmd_version()),
|
||||
])
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue