def test_setup_logging(self): logger = stools.setUpLogging(verbose=True, debug=True, logname='a_logger') # more than two handlers: console + log.txt self.assertEqual(len(logger.handlers), 2) # debug level self.assertTrue(logger.level == 10) # a log file has been created self.assertTrue(os.path.isfile('log.txt')) # bring down the logger stools.tearDownLogging('a_logger') # remove log file os.remove('log.txt') del logger
def test_sort_args(self): # make sure error is raised if no names.txt directory = '.' email = 'an.email' logger = stools.setUpLogging(verbose=False, debug=False, logname='testlogger') with self.assertRaises(stools.PrimingError): stools.sortArgs(directory, email, logger) # create a names.txt and test arguments returned names = ['name1', 'name2', 'name3', 'name4', 'name5', 'name6'] with open('names.txt', 'w') as file: for name in names: file.write(name + '\n') res = stools.sortArgs(directory, email, logger) self.assertTrue(isinstance(res['terms'], list)) self.assertTrue(isinstance(res['genedict'], dict)) self.assertTrue(isinstance(res['paradict'], dict)) os.remove('names.txt') # bring down the logger stools.tearDownLogging('testlogger') # remove its log file os.remove('log.txt')
# Set up runner import os from pglt.tools.setup_tools import getDirs from pglt.tools.setup_tools import setUpLogging from pglt.tools.system_tools import Runner base_logger = setUpLogging(False, False) folders = getDirs(base_logger) runner = Runner(folders, 1, os.getcwd(), '*****@*****.**') runner.setup(folders) runner.run(folders, ['1'])
email=email, verbose=verbose, debug=debug, logger=base_logger, retry=False) runner.setup() base_logger.info('Done.') # pickle runner for restart with open(argspath, 'w') as file: pickle.dump((nworkers, threads_per_worker, folders, email, threads, verbose, debug, stages), file) # run stages runner.run() if __name__ == '__main__': # make sure pglt knows about deps if not mafft or not raxml or not blastn: print('WARNING: Missing essential dependencies -- use `pglt_set_dependencies.py`') # parse args restart, retry, email, threads, verbose, debug, stages = \ stools.parseArguments() # create base logger -- messages in parent folder log.txt base_logger = stools.setUpLogging(verbose, debug, 'base') try: main(restart, retry, email, threads, verbose, debug, stages, base_logger) except KeyboardInterrupt: base_logger.info('Execution halted by user') if verbose: sys.exit() else: sys.exit('Execution halted by user')