3737test_frame = namedtuple ('frame' , ['f_code' , 'f_globals' , 'f_locals' ])
3838test_tb = namedtuple ('tb' , ['tb_frame' , 'tb_lineno' , 'tb_next' , 'tb_lasti' ])
3939
40- color_overrides = {"reset" : "z" , "filename" : "fn" , "error_highlight" : "E" }
40+ color_overrides = {"reset" : "z" , "filename" : "fn" , "error_highlight" : "E" , "note" : "n" }
4141colors = {
4242 color_overrides .get (k , k [0 ].lower ()): v
4343 for k , v in _colorize .default_theme .traceback .items ()
@@ -5085,6 +5085,23 @@ def bar():
50855085 self .assertIn ("return baz1(1,\n 2,3\n ,4)" , lines )
50865086 self .assertIn (red + "bar" + reset + boldr + "()" + reset , lines )
50875087
5088+ def test_colorized_exception_notes (self ):
5089+ def foo ():
5090+ raise ValueError ()
5091+
5092+ try :
5093+ foo ()
5094+ except Exception as e :
5095+ e .add_note ("First note" )
5096+ e .add_note ("Second note" )
5097+ exc = traceback .TracebackException .from_exception (e )
5098+
5099+ lines = "" .join (exc .format (colorize = True ))
5100+ magenta = colors ["m" ]
5101+ reset = colors ["z" ]
5102+ self .assertIn (magenta + "First note" + reset , lines )
5103+ self .assertIn (magenta + "Second note" + reset , lines )
5104+
50885105 def test_colorized_syntax_error (self ):
50895106 try :
50905107 compile ("a $ b" , "<string>" , "exec" )
@@ -5093,7 +5110,7 @@ def test_colorized_syntax_error(self):
50935110 e , capture_locals = True
50945111 )
50955112 actual = "" .join (exc .format (colorize = True ))
5096- def expected (t , m , fn , l , f , E , e , z ):
5113+ def expected (t , m , fn , l , f , E , e , z , n ):
50975114 return "" .join (
50985115 [
50995116 f' File { fn } "<string>"{ z } , line { l } 1{ z } \n ' ,
@@ -5119,7 +5136,7 @@ def foo():
51195136 actual = tbstderr .getvalue ().splitlines ()
51205137
51215138 lno_foo = foo .__code__ .co_firstlineno
5122- def expected (t , m , fn , l , f , E , e , z ):
5139+ def expected (t , m , fn , l , f , E , e , z , n ):
51235140 return [
51245141 'Traceback (most recent call last):' ,
51255142 f' File { fn } "{ __file__ } "{ z } , '
@@ -5152,7 +5169,7 @@ def foo():
51525169
51535170 lno_foo = foo .__code__ .co_firstlineno
51545171 actual = "" .join (exc .format (colorize = True )).splitlines ()
5155- def expected (t , m , fn , l , f , E , e , z ):
5172+ def expected (t , m , fn , l , f , E , e , z , n ):
51565173 return [
51575174 f" + Exception Group Traceback (most recent call last):" ,
51585175 f' | File { fn } "{ __file__ } "{ z } , line { l } { lno_foo + 9 } { z } , in { f } test_colorized_traceback_from_exception_group{ z } ' ,
0 commit comments