66import unittest
77
88from friendlylog import simple_logger as logger
9+
910from threading import Thread
1011
1112
1213# Tests cannot be executed in parallel due to the hack in the setUp method.
1314class TestSimpleLogger (unittest .TestCase ):
1415
1516 def setUp (self ):
17+ self .saved_inner_formatter = logger .inner_formatter
18+
1619 # Remove handler that outputs to STDERR.
1720 logger .inner_logger .removeHandler (logger .inner_stream_handler )
1821
@@ -24,10 +27,11 @@ def setUp(self):
2427 handler = logging .StreamHandler (self .log_capture )
2528 handler .setFormatter (logger .inner_formatter )
2629 logger .inner_logger .addHandler (handler )
30+ logger .inner_stream_handler = handler
2731 logger .setLevel (logging .DEBUG )
2832
2933 def tearDown (self ):
30- pass
34+ logger . inner_formatter = self . saved_inner_formatter
3135
3236 def last_line (self ):
3337 log = self .log_capture .getvalue ().splitlines ()
@@ -204,6 +208,18 @@ def test_non_str_logging(self):
204208 logger .critical ({})
205209 logger .warning (set ([- 1 , 4 , 10 , - 100 ]))
206210
211+ def test_set_custom_fmt (self ):
212+ dbg_lvls = ["DEBUG" , "INFO" , "WARNING" , "ERROR" , "CRITICAL" ]
213+ fmt_string = "[%(funcName)s] %(message)s"
214+ logger .set_fmt (fmt_string )
215+
216+ for level in dbg_lvls :
217+ getattr (logger , level .lower ())("Hello" )
218+
219+ last_n = self .last_n_lines (len (dbg_lvls ))
220+ for level , log in zip (dbg_lvls , last_n ):
221+ self .assertEqual (f"[test_set_custom_fmt] { level } : Hello" , log )
222+
207223
208224if __name__ == '__main__' :
209225 unittest .main ()
0 commit comments