@@ -111,19 +111,18 @@ def test_easybuildlog(self):
111111 # test basic log methods
112112 logToFile (tmplog , enable = True )
113113 log = getLogger ('test_easybuildlog' )
114- self .mock_stderr (True )
115- log .setLevelName ('DEBUG' )
116- log .debug ("123 debug" )
117- log .info ("foobar info" )
118- log .warning ("justawarning" )
119- log .deprecated ("anotherwarning" , newer_ver )
120- log .deprecated ("onemorewarning" , '1.0' , '2.0' )
121- log .deprecated ("lastwarning" , '1.0' , max_ver = '2.0' )
122- log .deprecated ("thisisnotprinted" , '1.0' , max_ver = '2.0' , silent = True )
123- log .error ("kaput" )
124- log .error ("err: %s" , 'msg: %s' )
125- stderr = self .get_stderr ()
126- self .mock_stderr (False )
114+ with self .mocked_stderr ():
115+ log .setLevelName ('DEBUG' )
116+ log .debug ("123 debug" )
117+ log .info ("foobar info" )
118+ log .warning ("justawarning" )
119+ log .deprecated ("anotherwarning" , newer_ver )
120+ log .deprecated ("onemorewarning" , '1.0' , '2.0' )
121+ log .deprecated ("lastwarning" , '1.0' , max_ver = '2.0' )
122+ log .deprecated ("thisisnotprinted" , '1.0' , max_ver = '2.0' , silent = True )
123+ log .error ("kaput" )
124+ log .error ("err: %s" , 'msg: %s' )
125+ stderr = self .get_stderr ()
127126
128127 more_info = "see https://docs.easybuild.io/deprecated-functionality/ for more information"
129128 common_warning = "\n WARNING: Deprecated functionality, will no longer work in"
@@ -188,9 +187,8 @@ def test_easybuildlog(self):
188187 logToFile (tmplog , enable = True )
189188
190189 # also test use of 'more_info' named argument for log.deprecated
191- self .mock_stderr (True )
192- log .deprecated ("\n this is just a test\n " , newer_ver , more_info = "(see URLGOESHERE for more information)" )
193- self .mock_stderr (False )
190+ with self .mocked_stderr ():
191+ log .deprecated ("\n this is just a test\n " , newer_ver , more_info = "(see URLGOESHERE for more information)" )
194192 logtxt = read_file (tmplog )
195193 expected_logtxt = '\n ' .join ([
196194 "[WARNING] :: Deprecated functionality, will no longer work in EasyBuild v10000001: " ,
@@ -211,18 +209,17 @@ def test_log_levels(self):
211209 logToFile (tmplog , enable = True )
212210 log = getLogger ('test_easybuildlog' )
213211
214- self .mock_stderr (True ) # avoid that some log statement spit out stuff to stderr while tests are running
215- for level in ['ERROR' , 'WARNING' , 'INFO' , 'DEBUG' , 'DEVEL' ]:
216- log .setLevelName (level )
217- log .raiseError = False
218- log .error ('kaput' )
219- log .deprecated ('almost kaput' , '10000000000000' )
220- log .raiseError = True
221- log .warning ('this is a warning' )
222- log .info ('fyi' )
223- log .debug ('gdb' )
224- log .devel ('tmi' )
225- self .mock_stderr (False )
212+ with self .mocked_stderr (): # avoid that some log statement spit out stuff to stderr while tests are running
213+ for level in ['ERROR' , 'WARNING' , 'INFO' , 'DEBUG' , 'DEVEL' ]:
214+ log .setLevelName (level )
215+ log .raiseError = False
216+ log .error ('kaput' )
217+ log .deprecated ('almost kaput' , '10000000000000' )
218+ log .raiseError = True
219+ log .warning ('this is a warning' )
220+ log .info ('fyi' )
221+ log .debug ('gdb' )
222+ log .devel ('tmi' )
226223
227224 logToFile (tmplog , enable = False )
228225 logtxt = read_file (tmplog )
@@ -249,13 +246,10 @@ def test_print_warning(self):
249246 """Test print_warning"""
250247 def run_check (args , silent = False , expected_stderr = '' , ** kwargs ):
251248 """Helper function to check stdout/stderr produced via print_warning."""
252- self .mock_stderr (True )
253- self .mock_stdout (True )
254- print_warning (* args , silent = silent , ** kwargs )
255- stderr = self .get_stderr ()
256- stdout = self .get_stdout ()
257- self .mock_stdout (False )
258- self .mock_stderr (False )
249+ with self .mocked_stdout_stderr ():
250+ print_warning (* args , silent = silent , ** kwargs )
251+ stderr = self .get_stderr ()
252+ stdout = self .get_stdout ()
259253 self .assertEqual (stdout , '' )
260254 self .assertEqual (stderr , expected_stderr )
261255
@@ -308,13 +302,10 @@ def test_print_msg(self):
308302 """Test print_msg"""
309303 def run_check (msg , args , expected_stdout = '' , expected_stderr = '' , ** kwargs ):
310304 """Helper function to check stdout/stderr produced via print_msg."""
311- self .mock_stdout (True )
312- self .mock_stderr (True )
313- print_msg (msg , * args , ** kwargs )
314- stdout = self .get_stdout ()
315- stderr = self .get_stderr ()
316- self .mock_stdout (False )
317- self .mock_stderr (False )
305+ with self .mocked_stdout_stderr ():
306+ print_msg (msg , * args , ** kwargs )
307+ stdout = self .get_stdout ()
308+ stderr = self .get_stderr ()
318309 self .assertEqual (stdout , expected_stdout )
319310 self .assertEqual (stderr , expected_stderr )
320311
@@ -347,13 +338,10 @@ def test_print_msg_rich(self):
347338
348339 def run_check (msg , args , expected_stdout = '' , expected_stderr = '' , ** kwargs ):
349340 """Helper function to check stdout/stderr produced via print_msg."""
350- self .mock_stdout (True , force_tty = True )
351- self .mock_stderr (True , force_tty = True )
352- print_msg (msg , * args , ** kwargs )
353- stdout = self .get_stdout ()
354- stderr = self .get_stderr ()
355- self .mock_stdout (False )
356- self .mock_stderr (False )
341+ with self .mocked_stdout_stderr (force_tty = True ):
342+ print_msg (msg , * args , ** kwargs )
343+ stdout = self .get_stdout ()
344+ stderr = self .get_stderr ()
357345 # Check that the expected output stdout/stderr is being colorized
358346 # In order to allow using more styles/schemes (or even to account to changes in the rich default)
359347 # We only check for \x1b[0m which is the ANSI reset code that should be present in the output to undo
@@ -386,13 +374,10 @@ def test_dry_run_msg(self):
386374 """Test dry_run_msg"""
387375 def run_check (msg , args , expected_stdout = '' , ** kwargs ):
388376 """Helper function to check stdout/stderr produced via dry_run_msg."""
389- self .mock_stdout (True )
390- self .mock_stderr (True )
391- dry_run_msg (msg , * args , ** kwargs )
392- stdout = self .get_stdout ()
393- stderr = self .get_stderr ()
394- self .mock_stdout (False )
395- self .mock_stderr (False )
377+ with self .mocked_stdout_stderr ():
378+ dry_run_msg (msg , * args , ** kwargs )
379+ stdout = self .get_stdout ()
380+ stderr = self .get_stderr ()
396381 self .assertEqual (stdout , expected_stdout )
397382 self .assertEqual (stderr , '' )
398383
@@ -407,13 +392,10 @@ def test_dry_run_warning(self):
407392 """Test dry_run_warningmsg"""
408393 def run_check (msg , args , expected_stdout = '' , ** kwargs ):
409394 """Helper function to check stdout/stderr produced via dry_run_warningmsg."""
410- self .mock_stdout (True )
411- self .mock_stderr (True )
412- dry_run_warning (msg , * args , ** kwargs )
413- stdout = self .get_stdout ()
414- stderr = self .get_stderr ()
415- self .mock_stdout (False )
416- self .mock_stderr (False )
395+ with self .mocked_stdout_stderr ():
396+ dry_run_warning (msg , * args , ** kwargs )
397+ stdout = self .get_stdout ()
398+ stderr = self .get_stderr ()
417399 self .assertEqual (stdout , expected_stdout )
418400 self .assertEqual (stderr , '' )
419401
@@ -458,10 +440,9 @@ def test_init_logging(self):
458440 stop_logging (logfile )
459441
460442 # by default, path to tmp log file is printed
461- self .mock_stdout (True )
462- log , logfile = init_logging (None )
463- stdout = self .get_stdout ()
464- self .mock_stdout (False )
443+ with self .mocked_stdout ():
444+ log , logfile = init_logging (None )
445+ stdout = self .get_stdout ()
465446 self .assertExists (logfile )
466447 self .assertEqual (os .path .dirname (logfile ), tmpdir )
467448 self .assertIsInstance (log , EasyBuildLog )
@@ -470,9 +451,8 @@ def test_init_logging(self):
470451 stop_logging (logfile )
471452
472453 # logging to stdout implies no log file
473- self .mock_stdout (True )
474- log , logfile = init_logging (None , logtostdout = True )
475- self .mock_stdout (False )
454+ with self .mocked_stdout ():
455+ log , logfile = init_logging (None , logtostdout = True )
476456 self .assertEqual (logfile , None )
477457 self .assertIsInstance (log , EasyBuildLog )
478458
0 commit comments