mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
gh-113081: Print colorized exception just like built-in traceback in pdb (#113082)
This commit is contained in:
parent
85af789961
commit
00da0afa0d
3 changed files with 6 additions and 2 deletions
|
@ -84,6 +84,7 @@ import inspect
|
||||||
import tokenize
|
import tokenize
|
||||||
import traceback
|
import traceback
|
||||||
import linecache
|
import linecache
|
||||||
|
import _colorize
|
||||||
|
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from rlcompleter import Completer
|
from rlcompleter import Completer
|
||||||
|
@ -2347,7 +2348,7 @@ def main():
|
||||||
print("The program exited via sys.exit(). Exit status:", end=' ')
|
print("The program exited via sys.exit(). Exit status:", end=' ')
|
||||||
print(e)
|
print(e)
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
traceback.print_exc()
|
traceback.print_exception(e, colorize=_colorize.can_colorize())
|
||||||
print("Uncaught exception. Entering post mortem debugging")
|
print("Uncaught exception. Entering post mortem debugging")
|
||||||
print("Running 'cont' or 'step' will restart the program")
|
print("Running 'cont' or 'step' will restart the program")
|
||||||
pdb.interaction(None, e)
|
pdb.interaction(None, e)
|
||||||
|
|
|
@ -15,7 +15,7 @@ import zipapp
|
||||||
from contextlib import ExitStack, redirect_stdout
|
from contextlib import ExitStack, redirect_stdout
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import os_helper
|
from test.support import force_not_colorized, os_helper
|
||||||
from test.support.import_helper import import_module
|
from test.support.import_helper import import_module
|
||||||
from test.support.pty_helper import run_pty, FakeInput
|
from test.support.pty_helper import run_pty, FakeInput
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
@ -2919,6 +2919,7 @@ def bœr():
|
||||||
self.assertNotIn(b'Error', stdout,
|
self.assertNotIn(b'Error', stdout,
|
||||||
"Got an error running test script under PDB")
|
"Got an error running test script under PDB")
|
||||||
|
|
||||||
|
@force_not_colorized
|
||||||
def test_issue16180(self):
|
def test_issue16180(self):
|
||||||
# A syntax error in the debuggee.
|
# A syntax error in the debuggee.
|
||||||
script = "def f: pass\n"
|
script = "def f: pass\n"
|
||||||
|
@ -2932,6 +2933,7 @@ def bœr():
|
||||||
'Fail to handle a syntax error in the debuggee.'
|
'Fail to handle a syntax error in the debuggee.'
|
||||||
.format(expected, stderr))
|
.format(expected, stderr))
|
||||||
|
|
||||||
|
@force_not_colorized
|
||||||
def test_issue84583(self):
|
def test_issue84583(self):
|
||||||
# A syntax error from ast.literal_eval should not make pdb exit.
|
# A syntax error from ast.literal_eval should not make pdb exit.
|
||||||
script = "import ast; ast.literal_eval('')\n"
|
script = "import ast; ast.literal_eval('')\n"
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Print colorized exception just like built-in traceback in :mod:`pdb`
|
Loading…
Add table
Add a link
Reference in a new issue