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())))
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))
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( )
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)