@@ -616,6 +616,55 @@ def custom_default(obj):
616616 return
617617
618618
619+ @pytest .mark .parametrize ("class_" , ALL_FORMATTERS )
620+ def test_exc_info_as_array (env : LoggingEnvironment , class_ : type [BaseJsonFormatter ]):
621+ env .set_formatter (class_ (exc_info_as_array = True ))
622+
623+ try :
624+ raise Exception ("Error" )
625+ except BaseException :
626+ env .logger .exception ("Error occurs" )
627+ log_json = env .load_json ()
628+
629+ assert type (log_json ["exc_info" ]) is list
630+ return
631+
632+
633+ @pytest .mark .parametrize ("class_" , ALL_FORMATTERS )
634+ def test_exc_info_as_array_no_exc_info (env : LoggingEnvironment , class_ : type [BaseJsonFormatter ]):
635+ env .set_formatter (class_ (exc_info_as_array = True ))
636+
637+ env .logger .info ("hello" )
638+ log_json = env .load_json ()
639+
640+ assert log_json .get ("exc_info" ) is None
641+ return
642+
643+
644+ @pytest .mark .parametrize ("class_" , ALL_FORMATTERS )
645+ def test_stack_info_as_array (env : LoggingEnvironment , class_ : type [BaseJsonFormatter ]):
646+ env .set_formatter (class_ (stack_info_as_array = True ))
647+
648+ env .logger .info ("hello" , stack_info = True )
649+ log_json = env .load_json ()
650+
651+ assert type (log_json ["stack_info" ]) is list
652+ return
653+
654+
655+ @pytest .mark .parametrize ("class_" , ALL_FORMATTERS )
656+ def test_stack_info_as_array_no_stack_info (
657+ env : LoggingEnvironment , class_ : type [BaseJsonFormatter ]
658+ ):
659+ env .set_formatter (class_ (stack_info_as_array = True ))
660+
661+ env .logger .info ("hello" , stack_info = False )
662+ log_json = env .load_json ()
663+
664+ assert log_json .get ("stack_info" ) is None
665+ return
666+
667+
619668## JsonFormatter Specific
620669## -----------------------------------------------------------------------------
621670def test_json_ensure_ascii_true (env : LoggingEnvironment ):
0 commit comments