mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2026-01-02 18:31:28 +01:00
72 lines
3.4 KiB
Python
72 lines
3.4 KiB
Python
"""Module to test the ophyd device config templates interface."""
|
|
|
|
from ophyd_devices.interfaces.device_config_templates.ophyd_templates import (
|
|
OPHYD_DEVICE_TEMPLATES,
|
|
EpicsMotorDeviceConfigTemplate,
|
|
EpicsSignalDeviceConfigTemplate,
|
|
EpicsSignalRODeviceConfigTemplate,
|
|
EpicsSignalWithRBVDeviceConfigTemplate,
|
|
)
|
|
|
|
|
|
def test_interfaces_OPHYD_DEVICE_TEMPLATES():
|
|
"""Test that the OPHYD_DEVICE_TEMPLATES dictionary is correctly defined."""
|
|
# Group level checks
|
|
assert "EpicsMotor" in OPHYD_DEVICE_TEMPLATES
|
|
assert "EpicsSignal" in OPHYD_DEVICE_TEMPLATES
|
|
assert "CustomDevice" in OPHYD_DEVICE_TEMPLATES
|
|
|
|
# Component level checks
|
|
assert "EpicsMotor" in OPHYD_DEVICE_TEMPLATES["EpicsMotor"]
|
|
template_info = OPHYD_DEVICE_TEMPLATES["EpicsMotor"]["EpicsMotor"]
|
|
assert "ophyd.EpicsMotor" == template_info.get("deviceClass", "")
|
|
assert issubclass(template_info.get("deviceConfig", object), EpicsMotorDeviceConfigTemplate)
|
|
|
|
assert "EpicsSignalRO" in OPHYD_DEVICE_TEMPLATES["EpicsSignal"]
|
|
template_info = OPHYD_DEVICE_TEMPLATES["EpicsSignal"]["EpicsSignalRO"]
|
|
assert "ophyd.EpicsSignalRO" == template_info.get("deviceClass", "")
|
|
assert issubclass(template_info.get("deviceConfig", object), EpicsSignalRODeviceConfigTemplate)
|
|
|
|
assert "EpicsSignalWithRBV" in OPHYD_DEVICE_TEMPLATES["EpicsSignal"]
|
|
template_info = OPHYD_DEVICE_TEMPLATES["EpicsSignal"]["EpicsSignalWithRBV"]
|
|
assert "ophyd.EpicsSignalWithRBV" == template_info.get("deviceClass", "")
|
|
assert issubclass(
|
|
template_info.get("deviceConfig", object), EpicsSignalWithRBVDeviceConfigTemplate
|
|
)
|
|
|
|
assert "EpicsSignal" in OPHYD_DEVICE_TEMPLATES["EpicsSignal"]
|
|
template_info = OPHYD_DEVICE_TEMPLATES["EpicsSignal"]["EpicsSignal"]
|
|
assert "ophyd.EpicsSignal" == template_info.get("deviceClass", "")
|
|
assert issubclass(template_info.get("deviceConfig", object), EpicsSignalDeviceConfigTemplate)
|
|
|
|
assert "CustomDevice" in OPHYD_DEVICE_TEMPLATES["CustomDevice"]
|
|
template_info = OPHYD_DEVICE_TEMPLATES["CustomDevice"]["CustomDevice"]
|
|
assert template_info.get("deviceConfig", None) == {}
|
|
|
|
|
|
def test_interfaces_templates():
|
|
"""Test the individual device config templates."""
|
|
# pylint: disable=unsupported-assignment-operation
|
|
# Epics Motor Template
|
|
assert "prefix" in EpicsMotorDeviceConfigTemplate.model_fields
|
|
assert "EPICS IOC prefix" in EpicsMotorDeviceConfigTemplate.model_fields["prefix"].description
|
|
assert "limits" in EpicsMotorDeviceConfigTemplate.model_fields
|
|
assert "limits" in EpicsMotorDeviceConfigTemplate.model_fields["limits"].description
|
|
|
|
# Epics Signal Template
|
|
assert "read_pv" in EpicsSignalDeviceConfigTemplate.model_fields
|
|
assert "EPICS read PV" in EpicsSignalDeviceConfigTemplate.model_fields["read_pv"].description
|
|
assert "write_pv" in EpicsSignalDeviceConfigTemplate.model_fields
|
|
assert "EPICS write PV" in EpicsSignalDeviceConfigTemplate.model_fields["write_pv"].description
|
|
|
|
# Epics Signal RO Template
|
|
assert "read_pv" in EpicsSignalRODeviceConfigTemplate.model_fields
|
|
assert "EPICS read PV" in EpicsSignalRODeviceConfigTemplate.model_fields["read_pv"].description
|
|
|
|
# Epics Signal With RBV Template
|
|
assert "prefix" in EpicsSignalWithRBVDeviceConfigTemplate.model_fields
|
|
assert (
|
|
"EPICS IOC prefix"
|
|
in EpicsSignalWithRBVDeviceConfigTemplate.model_fields["prefix"].description
|
|
)
|