def testSubmitMultIni(self): # Create and submit more than one ini temp_file_list = [ 'ethylrad.com', 'ircr.tpl', 'ircf.tpl', 'opt.tpl', 'ethylrad.chk' ] for fname in temp_file_list: with open(fname, 'w') as f: f.write("# for test only\n") test_input = ['ethylrad', "-c", SETUP_IRCS_INI, "-s", "-n"] try: main(test_input) self.assertFalse( diff_lines(SETUP_IRCR_INI_OUT, GOOD_SETUP_IRCR_INI_OUT)) self.assertFalse( diff_lines(SETUP_IRCR_SLM_OUT, GOOD_SETUP_IRCR_SLM_OUT)) self.assertFalse( diff_lines(SETUP_IRCF_INI_OUT, GOOD_SETUP_IRCF_INI_OUT)) self.assertFalse( diff_lines(SETUP_IRCF_SLM_OUT, GOOD_SETUP_IRCF_SLM_OUT)) finally: for fname in temp_file_list + [ SETUP_IRCR_INI_OUT, SETUP_IRCR_SLM_OUT, SETUP_IRCF_INI_OUT, SETUP_IRCF_SLM_OUT ]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testMissingListIni(self): test_input = [ETHYLRAD, "-c", MISSING_TPL_INI] # main(test_input) if logger.isEnabledFor(logging.DEBUG): main(test_input) with capture_stderr(main, test_input) as output: self.assertTrue("not find the submit template" in output)
def testHelp(self): test_input = ['-h'] if logger.isEnabledFor(logging.DEBUG): main(test_input) with capture_stderr(main, test_input) as output: self.assertFalse(output) with capture_stdout(main, test_input) as output: self.assertTrue("optional arguments" in output)
def testOneNewJobIni(self): test_input = [ETHYLRAD, "-c", ONE_NEW_JOB_INI, "-t"] try: main(test_input) self.assertFalse(diff_lines(OPT_SH_OUT, GOOD_OPT_SH_OUT)) finally: silent_remove(OPT_SH_OUT, disable=DISABLE_REMOVE) silent_remove(OPT_LOG_OUT, disable=DISABLE_REMOVE) pass
def testNeedsExtraKeyIni(self): test_input = [ETHYLRAD, "-c", HAS_EXTRA_KEY_INI, "-t"] try: main(test_input) self.assertFalse(diff_lines(OPT_SH_OUT, GOOD_OPT_EXTRA_KEY_SH_OUT)) finally: for fname in [DEF_SH_OUT, DEF_LOG_OUT, OPT_SH_OUT, OPT_LOG_OUT]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSetupSubmit(self): test_input = [ETHYLRAD, "-s", "-c", SETUP_SUBMIT_INI, "-n"] try: main(test_input) self.assertFalse(diff_lines(SPAWN0_INI, GOOD_SETUP_INI_OUT)) self.assertFalse(diff_lines(SPAWN0_SLURM, GOOD_SETUP_SLURM_OUT)) finally: for fname in [SPAWN0_INI, SPAWN0_SLURM]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSetupOneJobIni(self): test_input = [ETHYLRAD, "-c", ONE_JOB_INI, "-t", "-s"] try: main(test_input) self.assertFalse(diff_lines(ONE_INI_OUT, GOOD_ONE_INI_OUT)) self.assertFalse(diff_lines(ONE_SLM_OUT, GOOD_ONE_SLM_OUT)) finally: silent_remove(ONE_INI_OUT, disable=DISABLE_REMOVE) silent_remove(ONE_SLM_OUT, disable=DISABLE_REMOVE) pass
def testDefIni(self): test_input = [ETHYLRAD, "-c", DEF_INI, "-t"] try: main(test_input) self.assertFalse(diff_lines(DEF_SH_OUT, GOOD_SH_OUT)) self.assertFalse(diff_lines(OPT_SH_OUT, GOOD_OPT_SH_OUT)) self.assertFalse( diff_lines(OPT_STABLE_SH_OUT, GOOD_OPT_STABLE_SH_OUT)) finally: for file in [ DEF_SH_OUT, DEF_LOG_OUT, OPT_SH_OUT, OPT_STABLE_SH_OUT ]: silent_remove(file, disable=DISABLE_REMOVE) pass
def testNoChkChk(self): # checks not throwing an error when the chk file is not in the current directory. # also checks adding config lines to the created ini if they are needed but not part of the template test_input = [ 'tests/test_data/run_gauss/ethylrad_restart', "-s", "-c", SUBMIT_NO_CHK_CHECK_INI, "-n", "-t" ] try: main(test_input) self.assertFalse( diff_lines(NO_CHK_CHECK_INI, GOOD_NO_CHK_CHECK_INI)) self.assertFalse( diff_lines(NO_CHK_CHECK_SLM, GOOD_NO_CHK_CHECK_SLM)) finally: for fname in [NO_CHK_CHECK_INI, NO_CHK_CHECK_SLM]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testAttemptRunMultIni(self): # Create and submit more than one ini temp_file_list = ['ethylrad.com', 'ircr.tpl', 'ircf.tpl', 'opt.tpl'] for fname in temp_file_list: with open(fname, 'w') as f: f.write("# for test only\n") test_input = ['ethylrad', "-c", SETUP_IRCS_INI, "-o", 'ethyl'] if logger.isEnabledFor(logging.DEBUG): main(test_input) try: # main(test_input) with capture_stderr(main, test_input) as output: self.assertTrue("only supported" in output) finally: for fname in temp_file_list: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSpawn(self): test_input = [ETHYLRAD, "-c", SPAWN_INI, "-t", "-n"] try: main(test_input) self.assertFalse( diff_lines(OPT_STABLE_SH_OUT, GOOD_OPT_STABLE_SH_OUT)) self.assertFalse(diff_lines(SPAWN1_INI, GOOD_SPAWN1_INI)) self.assertFalse(diff_lines(SPAWN2_INI, GOOD_SPAWN2_INI)) self.assertFalse(diff_lines(SPAWN1_SLURM, GOOD_SPAWN1_SLURM)) self.assertFalse(diff_lines(SPAWN2_SLURM, GOOD_SPAWN2_SLURM)) finally: for fname in [ DEF_SH_OUT, OPT_SH_OUT, OPT_STABLE_SH_OUT, DEF_LOG_OUT, OPT_LOG_OUT, OPT_STABLE_LOG_OUT, SPAWN1_INI, SPAWN2_INI, SPAWN1_SLURM, SPAWN2_SLURM ]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSubmitDefDirIni(self): # Checking alternate input from above temp_file_list = ['ethylrad.com', 'f.tpl', 'ts.tpl', 'ethyl.chk'] for fname in temp_file_list: with open(fname, 'w') as f: f.write("# for test only\n") test_input = [ 'ethylrad', "-c", SETUP_F_TS_INI_IN, "-s", "-o", 'ethyl.chk', '-n', '-t' ] try: main(test_input) self.assertFalse(diff_lines(SETUP_F_TS_INI_OUT, GOOD_F_TS_INI_OUT)) self.assertFalse(diff_lines(SETUP_F_TS_SLM_OUT, GOOD_F_TS_SLM_OUT)) finally: for fname in temp_file_list + [ SETUP_F_TS_INI_OUT, SETUP_F_TS_SLM_OUT ]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSetupSubmitList(self): temp_file_list = ['ethylrad.com', 'water.com'] for fname in temp_file_list: with open(fname, 'w') as f: f.write("# for test only\n\n") test_input = [LIST, "-l", "-c", SETUP_SUBMIT_INI, "-n"] try: main(test_input) self.assertFalse(diff_lines(SPAWN0_INI, GOOD_SPAWN0_INI)) self.assertFalse(diff_lines(SPAWN0_SLURM, GOOD_SPAWN0_SLURM)) self.assertFalse( diff_lines(SETUP_WATER_INI_OUT, GOOD_WATER_INI_OUT)) self.assertFalse( diff_lines(SETUP_WATER_SLURM_OUT, GOOD_WATER_SLURM_OUT)) finally: for fname in temp_file_list + [ SPAWN0_INI, SPAWN0_SLURM, SETUP_WATER_INI_OUT, SETUP_WATER_SLURM_OUT ]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSubmitWithChkDefDirIni(self): # since this assumes a f.tpl and ts.tpl file in the main directory, create them, and delete at the end temp_file_list = ['f.tpl', 'ts.tpl'] for fname in temp_file_list: with open(fname, 'w') as f: f.write("# for test only\n") test_input = [ 'tests/test_data/run_gauss/ethylrad.com', "-c", SETUP_F_TS_INI_IN, "-s", "-o", 'tests/test_data/run_gauss/ethyl.chk', "-n" ] try: main(test_input) self.assertFalse( diff_lines(SETUP_F_TS_INI_OUT, GOOD_SETUP_F_TS_INI_OUT)) self.assertFalse( diff_lines(SETUP_F_TS_SLM_OUT, GOOD_SETUP_F_TS_SLM_OUT)) finally: for fname in temp_file_list + [ SETUP_F_TS_INI_OUT, SETUP_F_TS_SLM_OUT ]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testSpawnAllNew(self): temp_file_list = ['ethylrad_opt.chk'] for fname in temp_file_list: with open(fname, 'w') as f: f.write("# for test only\n\n") test_input = [ETHYLRAD, "-c", SPAWN_ALL_NEW_INI, "-t", "-n"] try: main(test_input) self.assertFalse(diff_lines(SPAWN0_INI, GOOD_SPAWN0_NEW_INI)) self.assertFalse(diff_lines(SPAWN1_INI, GOOD_SPAWN1_INI)) self.assertFalse(diff_lines(SPAWN2_INI, GOOD_SPAWN2_INI)) self.assertFalse(diff_lines(SPAWN0_SLURM, GOOD_SPAWN0_NEW_SLURM)) self.assertFalse(diff_lines(SPAWN1_SLURM, GOOD_SPAWN1_NEW_SLURM)) self.assertFalse(diff_lines(SPAWN2_SLURM, GOOD_SPAWN2_NEW_SLURM)) finally: for fname in temp_file_list + [ DEF_SH_OUT, OPT_SH_OUT, DEF_LOG_OUT, OPT_LOG_OUT, SPAWN0_INI, SPAWN1_INI, SPAWN2_INI, SPAWN0_SLURM, SPAWN1_SLURM, SPAWN2_SLURM ]: silent_remove(fname, disable=DISABLE_REMOVE) pass
def testMissingComFileIni(self): test_input = ["ghost", "-c", DEF_INI] if logger.isEnabledFor(logging.DEBUG): main(test_input) with capture_stderr(main, test_input) as output: self.assertTrue("Problems reading file" in output)