Пример #1
0
class ErtShellTestContext(object):

    def __init__(self, test_name, config_file, load_config=True, prefix=None, store_area=False):
        self.config_file = config_file
        self.load_config = load_config
        self.test_area_context = TestAreaContext(test_name, prefix=prefix, store_area=store_area)


    def __enter__(self):
        """ :rtype: ErtShell """
        test_area = self.test_area_context.__enter__()
        test_area.copy_parent_content(self.config_file)
        self.shell = ErtShell(forget_history=True)

        config_file = os.path.basename(self.config_file)

        if self.load_config:
            self.shell.onecmd("load_config %s" % config_file)

        return self.shell


    def __exit__(self, exc_type, exc_val, exc_tb):
        self.shell.do_exit("")
        self.shell._cleanup()
        self.test_area_context.__exit__(exc_type, exc_val, exc_tb)
        return False
Пример #2
0
    def test_ert_script_from_file(self):
        with TestAreaContext("python/job_queue/ert_script") as work_area:
            ErtScriptTest.createScripts()

            script_object = ErtScript.loadScriptFromFile("subtract_script.py")

            script = script_object("ert")
            result = script.initializeAndRun([int, int], ["1", "2"])
            self.assertEqual(result, -1)

            # with self.assertRaises(ErtScriptError):
            self.assertIsNone(
                ErtScript.loadScriptFromFile("syntax_error_script.py"))
            self.assertIsNone(
                ErtScript.loadScriptFromFile("import_error_script.py"))
            self.assertIsNone(ErtScript.loadScriptFromFile("empty_script.py"))
Пример #3
0
    def test_parse(self):
        p = Parser()
        pm = ParseContext()
        with self.assertRaises(IOError):
            p.parseFile("does/not/exist" , pm)

        with TestAreaContext("parse-test"):
            with open("test.DATA", "w") as fileH:
                fileH.write("RUNSPEC\n")
                fileH.write("DIMENS\n")
                fileH.write(" 10 10 10 /\n")
        
            deck = p.parseFile( "test.DATA" , pm)
            self.assertEqual( len(deck) , 2 )

            deck = Parser.parseFile( "test.DATA" )
Пример #4
0
    def test_context(self):
        with TestAreaContext("python/fortio/context") as t:
            kw1 = EclKW("KW", 2456, EclTypeEnum.ECL_FLOAT_TYPE)
            for i in range(len(kw1)):
                kw1[i] = randint(0, 1000)

            with openFortIO("file", mode=FortIO.WRITE_MODE) as f:
                kw1.fwrite(f)
                self.assertEqual(f.filename(), "file")

            t.sync()

            with openFortIO("file") as f:
                kw2 = EclKW.fread(f)

            self.assertTrue(kw1 == kw2)
Пример #5
0
 def test_coarse(self):
     #work_area = TestArea("python/grid-test/testCoarse")
     with TestAreaContext("python/grid-test/testCoarse"):
         testGRID = True
         g1 = EclGrid(self.createTestPath("Statoil/ECLIPSE/LGCcase/LGC_TESTCASE2.EGRID"))
 
         g1.save_EGRID("LGC.EGRID")
         g2 = EclGrid("LGC.EGRID")
         self.assertTrue(g1.equal(g2, verbose=True))
 
         if testGRID:
             g1.save_GRID("LGC.GRID")
             g3 = EclGrid("LGC.GRID")
             self.assertTrue(g1.equal(g3, verbose=True))
 
         self.assertTrue(g1.coarse_groups() == 3384)
Пример #6
0
    def test_field_guess_filetype(self):
        with TestAreaContext('field_config') as test_context:
            fname = abspath('test.kw.grdecl')
            print(fname)
            with open(fname, 'w') as f:
                f.write("-- my comment\n")
                f.write("-- more comments\n")
                f.write("SOWCR\n")
                for i in range(256 //
                               8):  # technicalities demand file has >= 256B
                    f.write("0 0 0 0\n")

            ft = FieldConfig.guessFiletype(fname)
            grdecl_type = EnkfFieldFileFormatEnum(5)
            self.assertEqual('ECL_GRDECL_FILE', grdecl_type.name)
            self.assertEqual(grdecl_type, ft)
Пример #7
0
 def test_various_null_fields(self):
     for key in [
         "target_file",
         "error_file",
         "start_file",
         "stdout",
         "stderr",
         "max_running_minutes",
         "argList",
         "environment",
         "stdin"
         ]:
             with TestAreaContext("python/job_queue/forward_model_none_" + key):
                 back_up = joblist[0][key]
                 joblist[0][key] = None
                 self.run_all()
                 joblist[0][key] = back_up
Пример #8
0
    def test_fortio_read_and_write(self):
        with TestAreaContext("python/fortio/read_and_write"):
            f = FortIO("test", FortIO.WRITE_MODE)

            record_size = 4000

            for i, c in enumerate("abcdefghijklmnopqrstuvwxyz"):
                data = bytearray(c * record_size)
                f.writeRecord(data)
                position = f.getPosition()
                self.assertEqual(position, (i + 1) * (record_size + 8))

            f = FortIO("test", FortIO.READ_MODE)

            for c in "abcdefghijklmnopqrstuvwxyz":
                record = f.readRecordAsString(record_size)
                self.assertEqual(record, c * record_size)
Пример #9
0
 def test_save(self):
     with TestAreaContext("python/grid-test/testSave"):
         g1 = EclGrid(self.egrid_file())
 
         g1.save_EGRID("test.EGRID")
         g2 = EclGrid("test.EGRID")
         self.assertTrue(g1.equal(g2))
 
         g1.save_GRID("test.GRID")
         g2 = EclGrid("test.GRID")
         self.assertTrue(g1.equal(g2))
 
         fileH = open("test.grdecl", "w")
         g1.save_grdecl(fileH)
         fileH.close()
         g2 = self.create("test.grdecl")
         self.assertTrue(g1.equal(g2))
Пример #10
0
    def test_contact(self):
        nx = 20
        ny = 10
        layer = Layer(nx,ny)
        grid = EclGrid.createRectangular( (nx,ny,1) , (1,1,1) )
        
        with self.assertRaises(IndexError):
            layer.cellContact( (-1,0),(1,1) )

        with self.assertRaises(IndexError):
            layer.cellContact( (20,0),(1,1) )


        self.assertFalse( layer.cellContact((0,0) , (2,0)) )
        self.assertFalse( layer.cellContact((1,0) , (1,0)) )

        self.assertTrue( layer.cellContact((0,0) , (1,0)) )
        self.assertTrue( layer.cellContact((1,0) , (0,0)) )
        
        self.assertTrue( layer.cellContact((0,0) , (0,1)) )
        self.assertTrue( layer.cellContact((0,1) , (0,0)) )

        self.assertFalse( layer.cellContact((0,0) , (1,1)) )
        self.assertFalse( layer.cellContact((1,1) , (0,0)) )
        
        self.assertTrue( layer.cellContact((4,0) , (5,0)) )
        self.assertTrue( layer.cellContact((0,4) , (0,5)) )
        
        with TestAreaContext("Layer/barrier"):
            with open("faults.grdecl" , "w") as f:
                f.write("FAULTS\n")
                f.write("\'FX\'   5   5   1   10   1   1  'X'  /\n")
                f.write("\'FY\'   1   10   5   5   1   1  'Y'  /\n")
                f.write("/")
                
            faults = FaultCollection( grid , "faults.grdecl")
            
        layer.addFaultBarrier( faults["FX"] , 0 )
        self.assertFalse( layer.cellContact((4,0) , (5,0)) )

        layer.addFaultBarrier( faults["FY"] , 0 )
        self.assertFalse( layer.cellContact((0,4) , (0,5)) )

        self.assertFalse( layer.cellContact((9,4) , (9,5)) )
        self.assertTrue( layer.cellContact((10,4) , (10,5)) )
Пример #11
0
    def test_create(self):
        data_config = GenDataConfig("KEY")
        with self.assertRaises(ValueError):
            gen_obs = GenObservation("KEY", data_config)

        with TestAreaContext("gen_obs/create"):
            with open("obs1.txt", "w") as f:
                f.write("10  5  12 6\n")

            with self.assertRaises(ValueError):
                gen_obs = GenObservation("KEY",
                                         data_config,
                                         scalar_value=(1, 2),
                                         obs_file="obs1.txt")

            with self.assertRaises(TypeError):
                gen_obs = GenObservation("KEY", data_config, scalar_value=1)

            with self.assertRaises(IOError):
                gen_obs = GenObservation("KEY",
                                         data_config,
                                         obs_file="does/not/exist")

            gen_obs = GenObservation("KEY",
                                     data_config,
                                     obs_file="obs1.txt",
                                     data_index="10,20")
            self.assertEqual(len(gen_obs), 2)
            self.assertEqual(gen_obs[0], (10, 5))
            self.assertEqual(gen_obs[1], (12, 6))

            self.assertEqual(gen_obs.getValue(0), 10)
            self.assertEqual(gen_obs.getDataIndex(1), 20)
            self.assertEqual(gen_obs.getStdScaling(0), 1)
            self.assertEqual(gen_obs.getStdScaling(1), 1)

            active_list = ActiveList()
            gen_obs.updateStdScaling(0.25, active_list)
            self.assertEqual(gen_obs.getStdScaling(0), 0.25)
            self.assertEqual(gen_obs.getStdScaling(1), 0.25)

            active_list.addActiveIndex(1)
            gen_obs.updateStdScaling(2.00, active_list)
            self.assertEqual(gen_obs.getStdScaling(0), 0.25)
            self.assertEqual(gen_obs.getStdScaling(1), 2.00)
Пример #12
0
    def test_ecl_config_creation(self):
        with TestAreaContext("enkf_library_test") as work_area:
            work_area.copy_directory(self.case_directory)

            main = EnKFMain("simple_config/minimum_config", self.site_config)

            self.assertIsInstance(main.analysisConfig(), AnalysisConfig)
            self.assertIsInstance(main.eclConfig(), EclConfig)

            with self.assertRaises(AssertionError):  # Null pointer!
                self.assertIsInstance(main.eclConfig().getRefcase(), EclSum)

            file_system = main.getEnkfFsManager().getCurrentFileSystem()
            self.assertEqual(file_system.getCaseName(), "default")
            time_map = file_system.getTimeMap()
            self.assertIsInstance(time_map, TimeMap)

            main.free()
Пример #13
0
 def test_missing_smspec_keyword(self):
     with TestAreaContext("EclSum/truncated_data") as ta:
         ta.copy_file( self.test_file )
         ta.copy_file( self.createTestPath( "Statoil/ECLIPSE/Gurbat/ECLIPSE.UNSMRY" ))
     
         with openEclFile("ECLIPSE.SMSPEC") as f:
             kw_list = []
             for kw in f:
                 kw_list.append(EclKW.copy( kw ) )
         
         with openFortIO("ECLIPSE.SMSPEC" , mode = FortIO.WRITE_MODE) as f:
             for kw in kw_list:
                 if kw.getName() == "KEYWORDS":
                     continue
                 kw.fwrite(f)
         
         with self.assertRaises(IOError):
             EclSum( "ECLIPSE" )
Пример #14
0
 def test_connect(self):
     with TestAreaContext("server/socket") as work_area:
         work_area.copy_directory_content(self.config_path)
         pid = os.fork()
         if pid == 0:
             s = ErtSocket.connect(self.config_file , self.port , self.host , self.logger)
             s.listen( )
         else:
             time.sleep(0.50)
             
             self.runCommand( ["STATUS"] , ["OPEN"] )
             self.runCommand( ["QUIT"] , ["QUIT"] )
         
             with self.assertRaises(Exception):
                 self.runCommand( "INVALID" )
                 
             with self.assertRaises(Exception):
                 self.runCommand( ["MISSING_COMMAND"] )
Пример #15
0
    def test_gen_kw_get_set_vector(self):
        with TestAreaContext("enkf/data/gen_kwt"):

            (gen_kw_config, gen_kw) = create_gen_kw()
            with self.assertRaises(ValueError):
                gen_kw.setValues([0])

            with self.assertRaises(TypeError):
                gen_kw.setValues(["A", "B", "C"])

            gen_kw.setValues([0, 1, 2])
            self.assertEqual(gen_kw[0], 0)
            self.assertEqual(gen_kw[1], 1)
            self.assertEqual(gen_kw[2], 2)

            self.assertEqual(gen_kw["MULTFLT1"], 0)
            self.assertEqual(gen_kw["MULTFLT2"], 1)
            self.assertEqual(gen_kw["MULTFLT3"], 2)
Пример #16
0
    def test_gen_kw_get_set(self):
        with TestAreaContext("enkf/data/gen_kwt"):

            (gen_kw_config, gen_kw) = create_gen_kw()
            self.assertIsInstance(gen_kw, GenKw)

            gen_kw[0] = 3.0
            self.assertEqual(gen_kw[0], 3.0)

            gen_kw["MULTFLT1"] = 4.0
            self.assertEqual(gen_kw["MULTFLT1"], 4.0)
            self.assertEqual(gen_kw[0], 4.0)

            gen_kw["MULTFLT2"] = 8.0
            self.assertEqual(gen_kw["MULTFLT2"], 8.0)
            self.assertEqual(gen_kw[1], 8.0)

            gen_kw["MULTFLT3"] = 12.0
            self.assertEqual(gen_kw["MULTFLT3"], 12.0)
            self.assertEqual(gen_kw[2], 12.0)

            self.assertEqual(len(gen_kw), 3)

            with self.assertRaises(IndexError):
                gen_kw[4]

            with self.assertRaises(TypeError):
                gen_kw[1.5]

            with self.assertRaises(KeyError):
                gen_kw["MULTFLT_2"]

            self.assertTrue("MULTFLT1" in gen_kw)

            items = gen_kw.items()
            self.assertEqual(len(items), 3)
            self.assertEqual(items[0][0], "MULTFLT1")
            self.assertEqual(items[1][0], "MULTFLT2")
            self.assertEqual(items[2][0], "MULTFLT3")

            self.assertEqual(items[0][1], 4)
            self.assertEqual(items[1][1], 8)
            self.assertEqual(items[2][1], 12)
Пример #17
0
    def test_cleanup(self):
        with TestAreaContext("latex") as work_area:
            work_area.copy_directory_content(self.statoil_path)
            lx = LaTeX("report_OK.tex", in_place=True)
            self.assertTrue(lx.in_place)
            self.assertTrue(lx.compile())
            for ext in ["log", "aux", "nav", "out", "snm", "toc"]:
                self.assertFalse(os.path.exists("report_OK.%s" % ext))

        lx = LaTeX("%s/report_OK.tex" % self.statoil_path, in_place=False)
        self.assertFalse(lx.in_place)
        run_path = lx.runpath
        self.assertTrue(lx.compile())
        self.assertFalse(os.path.exists(run_path))

        lx = LaTeX("%s/report_OK.tex" % self.statoil_path, in_place=False)
        run_path = lx.runpath
        self.assertTrue(lx.compile(cleanup=False))
        self.assertTrue(os.path.exists("%s/report_OK.log" % run_path))
Пример #18
0
    def test_temp_area(self):
        with TestAreaContext("TestArea") as test_area:
            cwd = os.getcwd()
            with open("file.txt", "w") as f:
                f.write("File")

            with TempAreaContext("TempArea") as temp_area:
                self.assertEqual(cwd, os.getcwd())
                self.assertEqual(cwd, temp_area.get_cwd())
                temp_area.copy_file("file.txt")

                self.assertTrue(
                    os.path.isfile(
                        os.path.join(temp_area.getPath(), "file.txt")))

                os.mkdir("tmp")
                os.chdir("tmp")

            self.assertEqual(os.getcwd(), os.path.join(cwd, "tmp"))
Пример #19
0
    def test_fprintf_data(self):
        with TestAreaContext("kw_no_header"):
            kw = EclKW.create("REGIONS", 10, EclTypeEnum.ECL_INT_TYPE)
            for i in range(len(kw)):
                kw[i] = i

            fileH = open("test", "w")
            kw.fprintf_data(fileH)
            fileH.close()

            fileH = open("test", "r")
            data = []
            for line in fileH.readlines():
                tmp = line.split()
                for elm in tmp:
                    data.append(int(elm))

            for (v1, v2) in zip(data, kw):
                self.assertEqual(v1, v2)
Пример #20
0
    def test_num_linesegment(self):
        nx = 10
        ny = 10
        nz = 1
        grid = EclGrid.createRectangular((nx, ny, nz), (1, 1, 1))
        with TestAreaContext("python/faults/line_order"):
            with open("faults.grdecl", "w") as f:
                f.write("""FAULTS
\'F1\'              1    4       2    2       1    1    \'Y\'    /
\'F1\'              6    8       2    2       1    1    \'Y\'    /
\'F2\'              1    8       2    2       1    1    \'Y\'    /
/
""")
            faults = FaultCollection(grid, "faults.grdecl")

            f1 = faults["F1"]
            f2 = faults["F2"]
            self.assertEqual(2, f1.numLines(0))
            self.assertEqual(1, f2.numLines(0))
Пример #21
0
    def test_arguments(self):
        with TestAreaContext("python/job_queue/workflow_job") as work_area:
            WorkflowCommon.createInternalFunctionJob()

            config = alloc_config()
            job = alloc_from_file("PRINTF", config, "printf_job")

            self.assertEqual(job.minimumArgumentCount(), 4)
            self.assertEqual(job.maximumArgumentCount(), 5)
            self.assertEqual(job.argumentTypes(), [str, int, float, bool, str])

            self.assertTrue(job.run(None, ["x %d %f %d", 1, 2.5, True]))
            self.assertTrue(job.run(None, ["x %d %f %d %s", 1, 2.5, True, "y"]))

            with self.assertRaises(UserWarning): # Too few arguments
                job.run(None, ["x %d %f", 1, 2.5])

            with self.assertRaises(UserWarning): # Too many arguments
                job.run(None, ["x %d %f %d %s", 1, 2.5, True, "y", "nada"])
Пример #22
0
    def test_gc(self):
        kw1 = EclKW("KW1", 100, EclTypeEnum.ECL_INT_TYPE)
        kw2 = EclKW("KW2", 100, EclTypeEnum.ECL_INT_TYPE)
        kw3 = EclKW("KW3", 100, EclTypeEnum.ECL_INT_TYPE)

        for i in range(len(kw1)):
            kw1[i] = i
            kw2[i] = 2 * i
            kw3[i] = 3 * i

        kw_list = [kw1, kw2, kw2]

        with TestAreaContext("context") as ta:
            createFile("TEST", kw_list)
            gc.collect()
            kw_list2 = loadKeywords("TEST")

            for kw1, kw2 in zip(kw_list, kw_list2):
                self.assertEqual(kw1, kw2)
Пример #23
0
    def test_collection(self):
        """Testing len, adding, getting (idx and slice), printing, clearing."""
        def path(idx):
            return 'path_%d' % idx

        def base(idx):
            return 'base_%d' % idx

        with TestAreaContext("runpath_list"):
            runpath_list = RunpathList("EXPORT.txt")
            runpath_list.add(3, 1, path(3), base(3))
            runpath_list.add(1, 1, path(1), base(1))
            runpath_list.add(2, 1, path(2), base(2))
            runpath_list.add(0, 0, path(0), base(0))
            runpath_list.add(3, 0, path(3), base(3))
            runpath_list.add(1, 0, path(1), base(1))
            runpath_list.add(2, 0, path(2), base(2))
            runpath_list.add(0, 1, path(0), base(0))

            self.assertEqual(8, len(runpath_list))
            pfx = 'RunpathList(size'  # the __repr__ function
            self.assertEqual(pfx, repr(runpath_list)[:len(pfx)])
            node2 = RunpathNode(2, 1, path(2), base(2))
            self.assertEqual(node2, runpath_list[2])

            node3 = RunpathNode(0, 0, path(0), base(0))
            node4 = RunpathNode(3, 0, path(3), base(3))
            node5 = RunpathNode(1, 0, path(1), base(1))
            node6 = RunpathNode(2, 0, path(2), base(2))
            nodeslice = [node3, node4, node5, node6]
            self.assertEqual(nodeslice, runpath_list[3:7])
            self.assertEqual(node6, runpath_list[-2])
            with self.assertRaises(TypeError):
                runpath_list["key"]
            with self.assertRaises(IndexError):
                runpath_list[12]

            runpath_list.clear()
            self.assertEqual(0, len(runpath_list))
            with self.assertRaises(IndexError):
                runpath_list[0]
            self.assertEqual('EXPORT.txt', runpath_list.getExportFile())
Пример #24
0
    def test_workflow_thread_cancel_ert_script(self):
        with TestAreaContext(
                "python/job_queue/workflow_runner_ert_script") as work_area:
            WorkflowCommon.createWaitJob()

            joblist = WorkflowJoblist()
            self.assertTrue(joblist.addJobFromFile("WAIT", "wait_job"))
            self.assertTrue("WAIT" in joblist)

            workflow = Workflow("wait_workflow", joblist)

            self.assertEqual(len(workflow), 3)

            workflow_runner = WorkflowRunner(workflow)

            self.assertFalse(workflow_runner.isRunning())

            workflow_runner.run()

            self.assertIsNone(workflow_runner.workflowResult())

            time.sleep(1)  # wait for workflow to start
            self.assertTrue(workflow_runner.isRunning())
            self.assertFileExists("wait_started_0")

            time.sleep(1)  # wait for first job to finish

            workflow_runner.cancel()
            time.sleep(1)  # wait for cancel to take effect
            self.assertFileExists("wait_finished_0")

            self.assertFileExists("wait_started_1")
            self.assertFileExists("wait_cancelled_1")
            self.assertFileDoesNotExist("wait_finished_1")

            self.assertTrue(workflow_runner.isCancelled())

            workflow_runner.wait()  # wait for runner to complete

            self.assertFileDoesNotExist("wait_started_2")
            self.assertFileDoesNotExist("wait_cancelled_2")
            self.assertFileDoesNotExist("wait_finished_2")
Пример #25
0
    def test_workflow_joblist_with_files(self):
        with TestAreaContext("python/job_queue/workflow_joblist") as work_area:
            WorkflowCommon.createErtScriptsJob()
            WorkflowCommon.createExternalDumpJob()
            WorkflowCommon.createInternalFunctionJob()

            joblist = WorkflowJoblist()

            joblist.addJobFromFile("DUMP_JOB", "dump_job")
            joblist.addJobFromFile("SELECT_CASE_JOB", "select_case_job")
            joblist.addJobFromFile("SUBTRACT_SCRIPT_JOB",
                                   "subtract_script_job")

            self.assertTrue("DUMP_JOB" in joblist)
            self.assertTrue("SELECT_CASE_JOB" in joblist)
            self.assertTrue("SUBTRACT_SCRIPT_JOB" in joblist)

            self.assertFalse((joblist["DUMP_JOB"]).isInternal())
            self.assertTrue((joblist["SELECT_CASE_JOB"]).isInternal())
            self.assertTrue((joblist["SUBTRACT_SCRIPT_JOB"]).isInternal())
Пример #26
0
    def test_connect(self):
        port = self.base_port
        config_path = self.createTestPath("local/resopt/config/simple")
        with TestAreaContext("server/socket1") as work_area:
            work_area.copy_directory_content(config_path)
            self.startServer("config", port)

            self.runCommand(["STATUS"], port, expected=["READY"])

            with self.assertRaises(Exception):
                self.runCommand("INVALID", port)

            with self.assertRaises(Exception):
                self.runCommand(["MISSING_COMMAND"], port)

            self.runCommand(["QUIT"], port, expected=["QUIT"])

            # Server is closed
            with self.assertRaises(Exception):
                self.runCommand(["STATUS"], port)
Пример #27
0
    def testSimulations(self):
        with TestAreaContext("server/server") as work_area:
            work_area.copy_directory_content(self.config_path)

            ert_server = ErtServer(self.config_file, self.logger)
            cmd = ["INIT_SIMULATIONS"]
            with self.assertRaises(IndexError):
                res = ert_server.evalCmd(cmd)

            cmd = ["UNKNOWN_COMMAND"]
            with self.assertRaises(KeyError):
                res = ert_server.evalCmd(cmd)

            cmd = ["GET_RESULT"]  # Missing arguments
            with self.assertRaises(IndexError):
                res = ert_server.evalCmd(cmd)

            cmd = ["GET_RESULT", 1, 1, "KW"]  #Missing keyword
            with self.assertRaises(KeyError):
                res = ert_server.evalCmd(cmd)
Пример #28
0
    def test_IOError(self):
        with TestAreaContext("TestArea") as test_area:
            with self.assertRaises(IOError):
                test_area.copy_file("Does/not/exist")

            with self.assertRaises(IOError):
                test_area.install_file("Does/not/exist")

            with self.assertRaises(IOError):
                test_area.copy_directory("Does/not/exist")

            with self.assertRaises(IOError):
                test_area.copy_parent_directory("Does/not/exist")

            os.makedirs("path1/path2")
            with open("path1/file.txt", "w") as f:
                f.write("File ...")

            with self.assertRaises(IOError):
                test_area.copy_directory("path1/file.txt")
Пример #29
0
    def test_kw_write(self):
        with TestAreaContext("python/ecl_kw/writing"):

            data = [random.random() for i in range(10000)]

            kw = EclKW("TEST", len(data), EclTypeEnum.ECL_DOUBLE_TYPE)
            i = 0
            for d in data:
                kw[i] = d
                i += 1

            pfx = 'EclKW('
            self.assertEqual(pfx, repr(kw)[:len(pfx)])

            fortio = FortIO("ECL_KW_TEST", FortIO.WRITE_MODE)
            kw.fwrite(fortio)
            fortio.close()

            fortio = FortIO("ECL_KW_TEST")

            kw2 = EclKW.fread(fortio)

            self.assertTrue(kw.equal(kw2))

            ecl_file = EclFile("ECL_KW_TEST",
                               flags=EclFileFlagEnum.ECL_FILE_WRITABLE)
            kw3 = ecl_file["TEST"][0]
            self.assertTrue(kw.equal(kw3))
            ecl_file.save_kw(kw3)
            ecl_file.close()

            fortio = FortIO("ECL_KW_TEST", FortIO.READ_AND_WRITE_MODE)
            kw4 = EclKW.fread(fortio)
            self.assertTrue(kw.equal(kw4))
            fortio.seek(0)
            kw4.fwrite(fortio)
            fortio.close()

            ecl_file = EclFile("ECL_KW_TEST")
            kw5 = ecl_file["TEST"][0]
            self.assertTrue(kw.equal(kw5))
Пример #30
0
    def test_str(self):
        m = Matrix(2, 2)
        s = "%s" % m

        m[0,0] = 0
        m[0,1] = 1
        m[1,0] = 2
        m[1,1] = 3
        
        with TestAreaContext("matrix_fprint"):
            with open("matrix.txt", "w") as f:
                m.fprint( f )

            with open("matrix.txt") as f:
                l1 = [ float(x) for x in f.readline().split()]
                l2 = [ float(x) for x in f.readline().split()]

            self.assertEqual( l1[0] , m[0,0])
            self.assertEqual( l1[1] , m[0,1])
            self.assertEqual( l2[0] , m[1,0])
            self.assertEqual( l2[1] , m[1,1])
Пример #31
0
    def test_create(self):
        with TestAreaContext("create_fs") as work_area:
            work_area.copy_parent_content(self.config_file)

            self.assertTrue(EnkfFs.exists(self.mount_point))
            fs = EnkfFs(self.mount_point)
            self.assertEqual(1, fs.refCount())
            fs.umount()

            self.assertFalse(EnkfFs.exists("newFS"))
            arg = None
            fs = EnkfFs.createFileSystem("newFS",
                                         EnKFFSType.BLOCK_FS_DRIVER_ID, arg)
            self.assertTrue(EnkfFs.exists("newFS"))
            self.assertTrue(fs is None)

            with self.assertRaises(IOError):
                version = EnkfFs.diskVersion("does/not/exist")

            version = EnkfFs.diskVersion("newFS")
            self.assertTrue(version >= 106)
Пример #32
0
 def __init__(self, test_name, config_file, load_config=True, prefix=None, store_area=False):
     self.config_file = config_file
     self.load_config = load_config
     self.test_area_context = TestAreaContext(test_name, prefix=prefix, store_area=store_area)