1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
from tango import Util, DeviceProxy
from tango.server import Device, command
from tango.test_context import DeviceTestContext, MultiDeviceTestContext
class DeviceToTest1(Device):
@command
def check_device(self, device_instance: str):
assert (
Util.instance().get_sub_dev_diag().get_associated_device()
== device_instance
)
devices_info = (
{
"class": DeviceToTest1,
"devices": [{"name": "test/device/1"}, {"name": "test/device/2"}],
},
)
def test_associated_device_is_device_instance():
# NOTE: this test works only with process=True
with MultiDeviceTestContext(devices_info, process=True):
dev1 = DeviceProxy("test/device/1")
dev2 = DeviceProxy("test/device/2")
dev1.check_device("test/device/1")
dev2.check_device("test/device/2")
class DeviceToTest2(Device):
sdd = None
def init_device(self):
super().init_device()
self.sdd = Util.instance().get_sub_dev_diag()
@command
def add_device(self, device_instance: str):
self.sdd.register_sub_device(device_instance, "test_device")
@command
def remove_device(self, device_instance: str):
self.sdd.remove_sub_devices(device_instance)
@command
def check_device(self, test_string: str):
if len(test_string) > 0:
assert self.sdd.get_sub_devices() == [test_string]
else:
assert self.sdd.get_sub_devices() == []
def test_register_sub_device():
with DeviceTestContext(
DeviceToTest2, device_name="test/device/1", process=True
) as dev:
dev.check_device("")
dev.add_device("test/device/1")
dev.check_device("test/device/1 test_device")
dev.remove_device("test/device/1")
dev.check_device("")
|