class TestPrepareASTKCase(UT.TestCase): def setUp(self): self.tmp_dir = TmpDir("manipulate_astk_parameters") def tearDown(self): self.tmp_dir.clean() def test_be_built_with_default_params(self): cfg_def = AS.AstkBuilder().build_default_cfg() case = AS.build_case("forma01a") case_cfg = case.export_bld.get(AS.Cfg) self.assert_(case_cfg is not cfg_def) self.assert_(case_cfg.equal(cfg_def)) def test_add_existing_comm_and_med_files(self): case = AS.build_case("c") bld = case.export_bld comm = get_data("forma01a.comm") case.use(AS.CommFile(comm)) self.assertEqual(bld.get(AS.CommFile).fname, comm) med = get_data("forma01a.mmed") case.use(AS.MedFile(med)) self.assertEqual(bld.get(AS.MedFile).fname, med) self.assertRaises(IOError, AS.CommFile, "wrong-file") self.assertRaises(IOError, AS.MedFile, "wrong-file")
def test_allow_interactiv_follow_up(self): wdir = self.tmp_dir.add("inter_follow_up") comm = __file__ case = AS.FromComm("c") cfg = AS.Cfg() cfg.add("n", AS.Param("nomjob", "ifup")) cfg.add("m", AS.Param("mode", "batch")) case.use(cfg) case.use_working_dir(wdir) case.use(AS.InteractivFollowUp()) case.use(AS.CommFile(comm)) fname = case.build_export_file().fname res = [ "P nomjob ifup", "P mode batch", "P follow_output yes", "F comm %s D 1" % comm, ] fid = open(fname) expf = fid.read() for line in res: self.assert_(line in expf, "not found : %s" % line) fid.close()
def _bld_case(self, rep, lines, name="c", srv=None): """Build an Aster case especially for tests""" case_rep = self.tmp_dir.add(rep) case = AS.build_case(name) case.use(AS.CommFile(self._write_comm(case_rep, lines, srv))) case.remove(AS.RRMedFile) return case
def test_use_comm_file_rep_if_no_rep_given(self): rep = self.tmp_dir.add("no_rep_given") cfg = AS.Cfg() cfg.add("name", AS.Param("nomjob", "test")) cfg.add("mode", AS.Param("mode", "batch")) comm = osp.join(rep, "f.comm") open(comm, "w").close() case = AS.build_case("f") case.use(cfg) case.use(AS.CommFile(comm)) fname = case.build_export_file().fname self.assert_(osp.isfile(fname)) self.assertEqual(osp.dirname(fname), rep) self.assert_(case.export_bld.working_dir is None)
def test_build_export_file(self): rep = self.tmp_dir.add("build") comm = get_data("forma01a.comm") med = get_data("forma01a.comm") cfg = AS.Cfg() cfg.add("v", AS.Param("version", "STA10.0")) cfg.add("name", AS.Param("nomjob")) cfg.add("m", AS.Param("mode", "bash")) cfg.add("n", AS.Attr("nb-cpu", 2)) bld = AS.ExportFileBuilder("forma01-case") bld.working_dir = rep bld.add(cfg) bld.add(AS.RMessFile()) bld.add(AS.CommFile(comm)) bld.add(AS.MedFile(med)) bld.add(AS.RResuFile()) bld.add(AS.RRMedFile()) bld.add(AS.Base()) fname = bld.write().fname fpat = osp.join(rep, "forma01-case") self.assertEqual(fname, fpat + ".export") res = [ "P version STA10.0", "P nomjob forma01-case", "P mode bash", "A nb-cpu 2", "F comm %s D 1" % comm, "F mmed %s D 20" % med, "F mess %s R 6" % (fpat + ".mess"), "F resu %s R 8" % (fpat + ".resu"), "F rmed %s R 80" % (fpat + ".rmed"), "R base %s RC 0" % (fpat + "base"), ] fid = open(fname) expf = fid.read() for line in res: self.assert_(line in expf, "not found : %s" % line) fid.close()
def add_to(self, aster_case, study_case, felt): """Add the command file to the aster case""" aster_case.use(astk.CommFile(felt.read_fname()))