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()
Esempio n. 3
0
 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()
Esempio n. 6
0
 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()))