def test_parse_arguments(self): # test the stages are returned correctly args = DummyArgs() _, _, _, _, _, _, stages = stools.parseArguments(args) self.assertEqual(stages, ['1', '2', '3', '4']) # test bad args with self.assertRaises(SystemExit): args = DummyArgs() args.email = None stools.parseArguments(args) with self.assertRaises(SystemExit): args = DummyArgs() args.threads = -10 stools.parseArguments(args) with self.assertRaises(SystemExit): args = DummyArgs() args.stages = '1-8' stools.parseArguments(args) with self.assertRaises(SystemExit): args = DummyArgs() args.stages = '4-1' stools.parseArguments(args)
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')