class test_mpi4casa_log_level(unittest.TestCase): def setUp(self): self.vis = "Four_ants_3C286.mms" setUpFile(self.vis,'vis') self.client = MPICommandClient() self.client.set_log_mode('redirect') self.client.start_services() # Prepare list of servers self.server_list = [] server_list = self.client.get_server_status() for server in server_list: if not server_list[server]['timeout']: self.server_list.append(server_list[server]['rank']) self.client.push_command_request("import os",True,self.server_list) def tearDown(self): os.system('rm -rf ' + self.vis) # Restore log file and level self.client.push_command_request("casalog.setlogfile(casa['files']['logfile'])",True,self.server_list) self.client.set_log_level("INFO") def test_mpi4casa_log_level_default_to_debug(self): """Test changing globally log level from default to debug """ # Change log level globally (test via MPIInterface as it internally uses MPICommandClient so both are tested) mpi_interface = MPIInterface() mpi_interface.set_log_level("DEBUG") # Use a separated log file per server to facilitate analysis for server in self.server_list: logfile = 'test_mpi4casa_log_level_debug-server-%s.log' % str(server) self.client.push_command_request("casalog.setlogfile('%s')" % (logfile),True,server) # Run flagdata flagdata(vis=self.vis, mode='summary') # Iterate trough log files to see if we find command handling msgs for server in self.server_list: # Get current working directory (we might be in the 'nosedir' subdirectory) cwd = self.client.push_command_request("os.getcwd()",True,server)[0]['ret'] logfile = '%s/test_mpi4casa_log_level_debug-server-%s.log' % (cwd,str(server)) content = open(logfile, 'r').read() if content.find('flagdata')>0: # Check only server with processed a flagdata sub-job self.assertEqual(content.find("MPICommandServer")<0, True, "MPICommandServer msgs should be filtered out")