From 173600754a5f40ca262140d8bfe034d79315352b Mon Sep 17 00:00:00 2001 From: Karthik Nadig Date: Thu, 27 Sep 2018 11:06:58 -0700 Subject: [PATCH] Add messages to error responses (#838) * Add error messages for to error responses. * Update tests * Update some failure message text. * update test_unknown_thread test --- ptvsd/wrapper.py | 28 ++++++++++++++++++---------- tests/highlevel/test_messages.py | 12 +++++++----- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/ptvsd/wrapper.py b/ptvsd/wrapper.py index fe0ae6dc..5f9696fe 100644 --- a/ptvsd/wrapper.py +++ b/ptvsd/wrapper.py @@ -1529,7 +1529,7 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: xml = self.parse_xml_response(resp_args) except SAXParseException as ex: - self.send_error_response(request) + self.send_error_response(request, resp_args) return try: @@ -1611,8 +1611,10 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: pyd_tid = self.thread_map.to_pydevd(vsc_tid) except KeyError: - # Unknown thread, nothing much we cna do about it here - self.send_error_response(request) + # Unknown thread, nothing much we can do about it here + self.send_error_response( + request, + 'Thread {} not found'.format(vsc_tid)) return try: @@ -1722,7 +1724,9 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: pyd_var = self.var_map.to_pydevd(vsc_var) except KeyError: - self.send_error_response(request) + self.send_error_response( + request, + 'Variable {} not found in frame'.format(vsc_var)) return if len(pyd_var) == 3: @@ -1737,7 +1741,7 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: xml = self.parse_xml_response(resp_args) except SAXParseException as ex: - self.send_error_response(request) + self.send_error_response(request, resp_args) return try: @@ -1835,13 +1839,15 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): if var_name.startswith('(return) '): self.send_error_response( request, - 'Cannot change return value.') + 'Cannot change return value') return try: pyd_var = self.var_map.to_pydevd(vsc_var) except KeyError: - self.send_error_response(request) + self.send_error_response( + request, + 'Variable {} not found in frame'.format(vsc_var)) return lhs_expr = self._get_variable_evaluate_name(pyd_var, var_name) @@ -1877,7 +1883,7 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: xml = self.parse_xml_response(resp_args) except SAXParseException as ex: - self.send_error_response(request) + self.send_error_response(request, resp_args) return try: @@ -1916,7 +1922,7 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: xml = self.parse_xml_response(resp_args) except SAXParseException as ex: - self.send_error_response(request) + self.send_error_response(request, resp_args) return try: @@ -2262,7 +2268,9 @@ class VSCodeMessageProcessor(VSCLifecycleMsgProcessor): try: pyd_tid, pyd_fid = self.frame_map.to_pydevd(vsc_fid) except KeyError: - self.send_error_response(request) + self.send_error_response( + request, + 'Frame {} not found'.format(vsc_fid)) cmd_args = '{}\t{}\t{}\t{}'.format(pyd_tid, pyd_fid, 'LOCAL', text) _, _, resp_args = yield self.pydevd_request( diff --git a/tests/highlevel/test_messages.py b/tests/highlevel/test_messages.py index 5e9c866d..c17b0120 100644 --- a/tests/highlevel/test_messages.py +++ b/tests/highlevel/test_messages.py @@ -393,12 +393,14 @@ class StackTraceTests(NormalRequestTest, unittest.TestCase): with self.launched(): with self.hidden(): tid, _ = self.set_thread('x') - req = self.send_request( - threadId=tid + 1, + self.send_request( + threadId=12345, ) received = self.vsc.received - self.assert_vsc_failure(received, [], req) + self.assert_vsc_received(received, [ + self.expected_failure('Thread 12345 not found'), + ]) self.assert_received(self.debugger, []) @@ -528,7 +530,7 @@ class VariablesTests(NormalRequestTest, unittest.TestCase): received = self.vsc.received self.assert_vsc_received(received, [ - self.expected_failure(''), + self.expected_failure('Variable 12345 not found in frame'), # no events ]) @@ -670,7 +672,7 @@ class SetVariableTests(NormalRequestTest, unittest.TestCase): received = self.vsc.received self.assert_vsc_received(received, [ - self.expected_failure(''), + self.expected_failure('Variable 12345 not found in frame'), # no events ])