4040test_frame = namedtuple ('frame' , ['f_code' , 'f_globals' , 'f_locals' ])
4141test_tb = namedtuple ('tb' , ['tb_frame' , 'tb_lineno' , 'tb_next' , 'tb_lasti' ])
4242
43- color_overrides = {"reset" : "z" , "filename" : "fn" , "error_highlight" : "E" }
43+ color_overrides = {"reset" : "z" , "filename" : "fn" , "error_highlight" : "E" , "note" : "n" }
4444colors = {
4545 color_overrides .get (k , k [0 ].lower ()): v
4646 for k , v in _colorize .default_theme .traceback .items ()
@@ -5306,6 +5306,23 @@ def bar():
53065306 self .assertIn ("return baz1(1,\n 2,3\n ,4)" , lines )
53075307 self .assertIn (red + "bar" + reset + boldr + "()" + reset , lines )
53085308
5309+ def test_colorized_exception_notes (self ):
5310+ def foo ():
5311+ raise ValueError ()
5312+
5313+ try :
5314+ foo ()
5315+ except Exception as e :
5316+ e .add_note ("First note" )
5317+ e .add_note ("Second note" )
5318+ exc = traceback .TracebackException .from_exception (e )
5319+
5320+ lines = "" .join (exc .format (colorize = True ))
5321+ note = colors ["n" ]
5322+ reset = colors ["z" ]
5323+ self .assertIn (note + "First note" + reset , lines )
5324+ self .assertIn (note + "Second note" + reset , lines )
5325+
53095326 def test_colorized_syntax_error (self ):
53105327 try :
53115328 compile ("a $ b" , "<string>" , "exec" )
@@ -5314,7 +5331,7 @@ def test_colorized_syntax_error(self):
53145331 e , capture_locals = True
53155332 )
53165333 actual = "" .join (exc .format (colorize = True ))
5317- def expected (t , m , fn , l , f , E , e , z ):
5334+ def expected (t , m , fn , l , f , E , e , z , n ):
53185335 return "" .join (
53195336 [
53205337 f' File { fn } "<string>"{ z } , line { l } 1{ z } \n ' ,
@@ -5340,7 +5357,7 @@ def foo():
53405357 actual = tbstderr .getvalue ().splitlines ()
53415358
53425359 lno_foo = foo .__code__ .co_firstlineno
5343- def expected (t , m , fn , l , f , E , e , z ):
5360+ def expected (t , m , fn , l , f , E , e , z , n ):
53445361 return [
53455362 'Traceback (most recent call last):' ,
53465363 f' File { fn } "{ __file__ } "{ z } , '
@@ -5373,7 +5390,7 @@ def foo():
53735390
53745391 lno_foo = foo .__code__ .co_firstlineno
53755392 actual = "" .join (exc .format (colorize = True )).splitlines ()
5376- def expected (t , m , fn , l , f , E , e , z ):
5393+ def expected (t , m , fn , l , f , E , e , z , n ):
53775394 return [
53785395 f" + Exception Group Traceback (most recent call last):" ,
53795396 f' | File { fn } "{ __file__ } "{ z } , line { l } { lno_foo + 9 } { z } , in { f } test_colorized_traceback_from_exception_group{ z } ' ,
0 commit comments