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 } { z } { l } { 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 } { l } { lno_foo + 9 } { z } { f } { z }  ,
0 commit comments