Exemplo n.º 1
0
 def test_mpi_run(self):
     with TestAreaContext("ecl_run") as ta:
         self.init_config()
         ta.copy_file( os.path.join(self.SOURCE_ROOT , "test-data/local/eclipse/SPE1_PARALLELL.DATA"))
         argv = ["run_ecl100" , "2014.2" , "SPE1_PARALLELL.DATA" , "2"]
         ecl_run = EclRun(argv)
         ecl_run.runEclipse( )
         self.assertTrue( os.path.isfile( os.path.join( ecl_run.runPath() , "%s.stderr" % ecl_run.baseName())))
         self.assertTrue( os.path.isfile( os.path.join( ecl_run.runPath() , "%s.LOG" % ecl_run.baseName())))
Exemplo n.º 2
0
    def test_run(self):
        self.init_eclrun_config()
        shutil.copy(
            os.path.join(self.SOURCE_ROOT, "test-data/local/eclipse/SPE1.DATA"),
            "SPE1.DATA",
        )
        ecl_config = Ecl100Config()

        ecl_run = EclRun("SPE1.DATA", None)
        ecl_run.runEclipse(eclrun_config=EclrunConfig(ecl_config, "2019.3"))

        ok_path = os.path.join(ecl_run.runPath(), "{}.OK".format(ecl_run.baseName()))
        log_path = os.path.join(ecl_run.runPath(), "{}.LOG".format(ecl_run.baseName()))

        self.assertTrue(os.path.isfile(ok_path))
        self.assertTrue(os.path.isfile(log_path))
        self.assertTrue(os.path.getsize(log_path) > 0)

        errors = ecl_run.parseErrors()
        self.assertEqual(0, len(errors))
Exemplo n.º 3
0
    def test_run(self):
        with TestAreaContext("ecl_run") as ta:
            self.init_config()
            ta.copy_file( os.path.join(self.SOURCE_ROOT , "test-data/local/eclipse/SPE1.DATA"))
            os.makedirs("ecl_run")
            shutil.move("SPE1.DATA" , "ecl_run")
            argv = ["run_ecl100" , "2014.2" , "ecl_run/SPE1.DATA"]
            ecl_run = EclRun(argv)
            ecl_run.runEclipse( )

            self.assertTrue( os.path.isfile( os.path.join( ecl_run.runPath() , "%s.stderr" % ecl_run.baseName())))
            self.assertTrue( os.path.isfile( os.path.join( ecl_run.runPath() , "%s.LOG" % ecl_run.baseName())))
            self.assertTrue( os.path.isfile( os.path.join( ecl_run.runPath() , "%s.OK" % ecl_run.baseName())))

            errors = ecl_run.parseErrors( )
            self.assertEqual( 0 , len(errors ))

            # Monkey patching the ecl_run to use an executable which
            # will fail with exit(1); don't think Eclipse actually
            # fails with exit(1) - but let us at least be prepared
            # when/if it does.
            ecl_run.sim.executable = os.path.join( self.SOURCE_ROOT , "tests/classes/ecl_run_fail")
            with self.assertRaises(Exception):
                ecl_run.runEclipse( )
Exemplo n.º 4
0
    def test_create(self):
        # This test can make do with a mock simulator; - just something executable

        with TestAreaContext("ecl_run"):
            self.init_config()
            conf = {"simulators" : {"ecl100" : {"2014.2" : {"scalar": {"executable" : "bin/scalar_exe"},
                                                            "mpi" : {"executable" : "bin/mpi_exe",
                                                                     "mpirun" : "bin/mpirun"}}}}}
            with open("ecl_config.yml","w") as f:
                f.write( yaml.dump(conf) )

            os.mkdir("bin")
            os.environ["ECL_SITE_CONFIG"] = "ecl_config.yml"
            for f in ["scalar_exe", "mpi_exe", "mpirun"]:
                fname = os.path.join("bin", f)
                with open( fname, "w") as fh:
                    fh.write("This is an exectable ...")

                os.chmod(fname, stat.S_IEXEC)

            # Wrong arg count
            with self.assertRaises(ValueError):
                argv = []
                ecl_run = EclRun(argv)

            # Wrong arg count
            with self.assertRaises(ValueError):
                argv = [1,2,3,4,5]
                ecl_run = EclRun(argv)


            with open("ECLIPSE.DATA" , "w") as f:
                f.write("Mock eclipse data file")

            #Unknown simulator in argv[0]
            with self.assertRaises(ValueError):
                argv = ["Simulator" , "2014.2" , "ECLIPSE.DATA"]
                ecl_run = EclRun(argv)

            ecl_run = EclRun(["run_ecl100" , "2014.2" , "ECLIPSE.DATA"])
            self.assertEqual( ecl_run.runPath() , os.getcwd())

            os.mkdir("path")
            with open("path/ECLIPSE.DATA" , "w") as f:
                f.write("Mock eclipse data file")

            ecl_run = EclRun(["run_ecl100" , "2014.2" , "path/ECLIPSE.DATA"])
            self.assertEqual( ecl_run.runPath() , os.path.join(os.getcwd() , "path"))
            self.assertEqual( ecl_run.baseName() , "ECLIPSE")


            argv = ["run_ecl100" , "2014.2" , "ECLIPSE.DATA"]
            ecl_run = EclRun(argv)
            self.assertEqual( 1 , ecl_run.numCpu())

            # invalid number of CPU
            with self.assertRaises(ValueError):
                argv = ["run_ecl100" , "2014.2" , "ECLIPSE.DATA" , "xx"]
                ecl_run = EclRun(argv)

            argv = ["run_ecl100" , "2014.2" , "ECLIPSE.DATA" , "10"]
            ecl_run = EclRun(argv)
            self.assertEqual( 10 , ecl_run.numCpu())

            argv = ["run_ecl100" , "MISSING_VERSION" , "ECLIPSE.DATA" , "10"]
            with self.assertRaises(KeyError):
                ecl_run = EclRun(argv)

            #Missing datafile
            with self.assertRaises(IOError):
                argv = ["run_ecl100" , "2014.2" , "ECLIPSE_DOES_NOT_EXIST.DATA"]
                ecl_run = EclRun(argv)