|
9 | 9 | """ |
10 | 10 | class Test_FMIRegression: |
11 | 11 |
|
12 | | - def checkModel(self, modelName): |
13 | | - mod = OMPython.ModelicaSystem(modelName=modelName) |
| 12 | + def buildModelFMU(self, modelName): |
| 13 | + omc = OMPython.OMCSessionZMQ() |
| 14 | + |
| 15 | + ## create a temp dir for each session |
| 16 | + tempdir = tempfile.mkdtemp() |
| 17 | + if not os.path.exists(tempdir): |
| 18 | + return print(tempdir, " cannot be created") |
| 19 | + |
| 20 | + tempdirExp="".join(["cd(","\"",tempdir,"\"",")"]).replace("\\","/") |
| 21 | + omc.sendExpression(tempdirExp) |
| 22 | + |
| 23 | + omc.sendExpression("loadModel(Modelica)") |
| 24 | + omc.sendExpression("getErrorString()") |
| 25 | + |
14 | 26 | fileNamePrefix = modelName.split(".")[-1] |
15 | | - fmu = mod.convertMo2Fmu(fileNamePrefix=fileNamePrefix) |
| 27 | + exp = "buildModelFMU(" + modelName + ", fileNamePrefix=\"" + fileNamePrefix + "\"" + ")" |
| 28 | + |
| 29 | + fmu = omc.sendExpression(exp) |
16 | 30 | assert True == os.path.exists(fmu) |
17 | | - shutil.rmtree(mod.getWorkDirectory(), ignore_errors=True) |
18 | | - mod.__del__() |
19 | 31 |
|
| 32 | + omc.__del__() |
| 33 | + shutil.rmtree(tempdir, ignore_errors= True) |
20 | 34 |
|
21 | 35 | def test_Modelica_Blocks_Examples_Filter(self): |
22 | | - self.checkModel("Modelica.Blocks.Examples.Filter") |
| 36 | + self.buildModelFMU("Modelica.Blocks.Examples.Filter") |
23 | 37 |
|
24 | 38 | def test_Modelica_Blocks_Examples_RealNetwork1(self): |
25 | | - self.checkModel("Modelica.Blocks.Examples.RealNetwork1") |
| 39 | + self.buildModelFMU("Modelica.Blocks.Examples.RealNetwork1") |
26 | 40 |
|
27 | 41 | def test_Modelica_Electrical_Analog_Examples_CauerLowPassAnalog(self): |
28 | | - self.checkModel("Modelica.Electrical.Analog.Examples.CauerLowPassAnalog") |
| 42 | + self.buildModelFMU("Modelica.Electrical.Analog.Examples.CauerLowPassAnalog") |
29 | 43 |
|
30 | 44 | def test_Modelica_Electrical_Digital_Examples_FlipFlop(self): |
31 | | - self.checkModel("Modelica.Electrical.Digital.Examples.FlipFlop") |
| 45 | + self.buildModelFMU("Modelica.Electrical.Digital.Examples.FlipFlop") |
32 | 46 |
|
33 | 47 | def test_Modelica_Mechanics_Rotational_Examples_FirstGrounded(self): |
34 | | - self.checkModel("Modelica.Mechanics.Rotational.Examples.FirstGrounded") |
| 48 | + self.buildModelFMU("Modelica.Mechanics.Rotational.Examples.FirstGrounded") |
35 | 49 |
|
36 | 50 | def test_Modelica_Mechanics_Rotational_Examples_CoupledClutches(self): |
37 | | - self.checkModel("Modelica.Mechanics.Rotational.Examples.CoupledClutches") |
| 51 | + self.buildModelFMU("Modelica.Mechanics.Rotational.Examples.CoupledClutches") |
38 | 52 |
|
39 | 53 | def test_Modelica_Mechanics_MultiBody_Examples_Elementary_DoublePendulum(self): |
40 | | - self.checkModel("Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum") |
| 54 | + self.buildModelFMU("Modelica.Mechanics.MultiBody.Examples.Elementary.DoublePendulum") |
41 | 55 |
|
42 | 56 | def test_Modelica_Mechanics_MultiBody_Examples_Elementary_FreeBody(self): |
43 | | - self.checkModel("Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody") |
| 57 | + self.buildModelFMU("Modelica.Mechanics.MultiBody.Examples.Elementary.FreeBody") |
44 | 58 |
|
45 | 59 | def test_Modelica_Fluid_Examples_PumpingSystem(self): |
46 | | - self.checkModel("Modelica.Fluid.Examples.PumpingSystem") |
| 60 | + self.buildModelFMU("Modelica.Fluid.Examples.PumpingSystem") |
47 | 61 |
|
48 | 62 | def test_Modelica_Fluid_Examples_TraceSubstances_RoomCO2WithControls(self): |
49 | | - self.checkModel("Modelica.Fluid.Examples.TraceSubstances.RoomCO2WithControls") |
| 63 | + self.buildModelFMU("Modelica.Fluid.Examples.TraceSubstances.RoomCO2WithControls") |
50 | 64 |
|
51 | 65 | def test_Modelica_Clocked_Examples_SimpleControlledDrive_ClockedWithDiscreteTextbookController(self): |
52 | | - self.checkModel("Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscreteTextbookController") |
53 | | - |
| 66 | + self.buildModelFMU("Modelica.Clocked.Examples.SimpleControlledDrive.ClockedWithDiscreteTextbookController") |
0 commit comments