diff options
author | Daniel Hahler <github@thequod.de> | 2019-02-15 20:52:53 (GMT) |
---|---|---|
committer | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2019-02-15 20:52:53 (GMT) |
commit | 4327705cfab3eb09073ec828570bbd8f789e1611 (patch) | |
tree | a32e039b8fbfc0536c6ecd6d5fc305957dd81449 /Lib/test/test_pdb.py | |
parent | 9abb725cea7a1687b4d85ab9766ae6256a76a1ef (diff) | |
download | cpython-4327705cfab3eb09073ec828570bbd8f789e1611.zip cpython-4327705cfab3eb09073ec828570bbd8f789e1611.tar.gz cpython-4327705cfab3eb09073ec828570bbd8f789e1611.tar.bz2 |
bpo-35931: Gracefully handle SyntaxError in pdb debug command (GH-11782)
Previously, `debug print(` would cause the interpreter to exit on a SyntaxError whereas `print(` would properly display the error and return to the pdb prompt.
This patch fixes this by pre-compiling the code before passing it to `Pdb.run`.
https://bugs.python.org/issue35931
Diffstat (limited to 'Lib/test/test_pdb.py')
-rw-r--r-- | Lib/test/test_pdb.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 4f9d28a..21f6b70 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -1486,6 +1486,14 @@ class PdbTestCase(unittest.TestCase): stdout, _ = self._run_pdb(['-m', self.module_name + '.runme'], commands) self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()), stdout) + def test_syntaxerror_in_command(self): + commands = "print(\ndebug print(" + stdout, _ = self.run_pdb_script("", commands) + self.assertEqual(stdout.splitlines()[1:], [ + '(Pdb) *** SyntaxError: unexpected EOF while parsing', + '(Pdb) *** SyntaxError: unexpected EOF while parsing', + '(Pdb) ', + ]) def load_tests(*args): from test import test_pdb |