Enable exception breakpoint (#585)

* Enable exception breakpoint

* Fix typo

* Fix cmd version platform
This commit is contained in:
Karthik Nadig 2018-07-03 21:52:31 -07:00 committed by GitHub
parent a8b2fee5c8
commit cc91ab5d1f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 30 deletions

View file

@ -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))

View file

@ -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)

View file

@ -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()),
])