ChimeraTK-ApplicationCore 04.06.00
Loading...
Searching...
No Matches
testPythonApplicationModule.py
Go to the documentation of this file.
1import sys
2import os
3import os.path
4import traceback
5
6# fmt: off
7# Hack to insert the python path for the locally compiled module in the
8# test script
9sys.path.insert(0, os.path.abspath(os.path.join(os.curdir, "..")))
10import PyApplicationCore as ac # NOQA
11# fmt: on
12
13
14class MyMod(ac.ApplicationModule):
15
16 def __init__(self, owner, name, description):
17 super().__init__(owner, name, description)
18
19 self.testError = ac.ScalarOutput(ac.DataType.string, self, "testError", "", "")
20
21 def mainLoop(self):
22 try:
23 assert self.getName() == "UserModule"
24 assert self.getDataValidity() == ac.DataValidity.ok
25 old = self.getDataFaultCounter()
26 self.incrementDataFaultCounter()
27 assert self.getDataFaultCounter() == old + 1
28 assert self.getDataValidity() == ac.DataValidity.faulty
29 self.decrementDataFaultCounter()
30 assert self.getDataValidity() == ac.DataValidity.ok
31 assert self.getDataFaultCounter() == old
32
33 # see if getting a config works and it is our own config
34 conf = self.appConfig()
35 try:
36 assert conf.get(ac.DataType.string, "PythonModules/AppModule/path") == "testPythonApplicationModule"
37 except RuntimeError:
38 assert False
39
40 except AssertionError as e:
41 self.testError.setAndWrite("\n".join(traceback.format_exception(e)))
42
43
44class SecondMod(ac.ApplicationModule):
45 def __init__(self, owner, name, description):
46 super().__init__(owner, name, description)
47 self.disable()
48
49 def mainLoop(self):
50 pass
51
52
53ac.app.myMod = MyMod(ac.app,"UserModule", "module for testing of VariableGroup bindings")
54ac.app.secondMod = SecondMod(ac.app,"DisabledMod", "module should be disabled")
__init__(self, owner, name, description)
void mainLoop() override