1 parent
1c04ace6e9
commit
20e6993577
3 files changed
+177
No files matched your search
@@ -0,0 +1,22 @@
|
||||
from caproto.sync.client import read, write
|
||||
from time import sleep
|
||||
|
||||
class CaprotoWrapper:
|
||||
def raw_read(pvname):
|
||||
return read(pvname, timeout=5).data[0].decode('utf-8')
|
||||
|
||||
def get_pv_value(pvname, expected_value):
|
||||
timeout = 10
|
||||
while(expected_value != CaprotoWrapper.raw_read(pvname) and timeout > 0):
|
||||
timeout -=1
|
||||
sleep(0.5)
|
||||
|
||||
return CaprotoWrapper.raw_read(pvname)
|
||||
|
||||
def set_pv_value(pvname, value):
|
||||
write(pvname, value, notify=True)
|
||||
timeout = 10
|
||||
while(value != CaprotoWrapper.raw_read(pvname) and timeout > 0):
|
||||
timeout -= 1
|
||||
sleep(0.5)
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import subprocess
|
||||
import sys
|
||||
import signal
|
||||
|
||||
from caproto_wrapper import CaprotoWrapper
|
||||
|
||||
def is_ioc_running():
|
||||
return "" != CaprotoWrapper.raw_read("ePowerSwitch_set_outlet_1")
|
||||
|
||||
def start_iocshell():
|
||||
res = subprocess.Popen(["./startioc.sh"])
|
||||
while not is_ioc_running():
|
||||
pass
|
||||
return res
|
||||
|
||||
def start_sim():
|
||||
return subprocess.Popen(["python", "./sim/ePowerSwitch8_sim.py"])
|
||||
|
||||
def start_pytest():
|
||||
return subprocess.Popen(["pytest","test"])
|
||||
|
||||
sim_process = start_sim()
|
||||
iocsh_process = start_iocshell()
|
||||
pytest_process = start_pytest()
|
||||
exit_code = 0
|
||||
|
||||
try:
|
||||
|
||||
exit_code = pytest_process.wait()
|
||||
|
||||
finally:
|
||||
sim_process.send_signal(sig=signal.SIGTERM)
|
||||
iocsh_process.send_signal(sig=signal.SIGTERM)
|
||||
pytest_process.send_signal(sig=signal.SIGTERM)
|
||||
|
||||
sys.exit(exit_code)
|
||||
@@ -0,0 +1,119 @@
|
||||
from caproto_wrapper import CaprotoWrapper
|
||||
|
||||
delay = 1
|
||||
|
||||
def test_turn_on():
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_1", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_1", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_1", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_2", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_2", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_2", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_3", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_3", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_3", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_4", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_4", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_4", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_5", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_5", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_5", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_6", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_6", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_6", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_7", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_7", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_7", "On") == "On")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_8", "On")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_8", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_8", "On") == "On")
|
||||
|
||||
|
||||
|
||||
def test_turn_off():
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_1", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_1", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_1", "Off") == "Off")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_2", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_2", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_2", "Off") == "Off")
|
||||
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_3", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_3", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_3", "Off") == "Off")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_4", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_4", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_4", "Off") == "Off")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_5", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_5", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_5", "Off") == "Off")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_6", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_6", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_6", "Off") == "Off")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_7", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_7", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_7", "Off") == "Off")
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_8", "Off")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_set_outlet_8", "Off") == "Off")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_8", "Off") == "Off")
|
||||
|
||||
|
||||
|
||||
def test_restart():
|
||||
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_1", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_1", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_2", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_2", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_3", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_3", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_4", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_4", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_5", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_5", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_6", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_6", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_7", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_7", "Rst") == "Rst")
|
||||
CaprotoWrapper.set_pv_value("ePowerSwitch_set_outlet_8", "Restart")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_8", "Rst") == "Rst")
|
||||
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_1", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_2", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_3", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_4", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_5", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_6", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_7", "On") == "On")
|
||||
assert(CaprotoWrapper.get_pv_value("ePowerSwitch_get_outlet_8", "On") == "On")
|
||||
|
||||
Reference in new issue
Block a user