mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2026-02-03 22:08:39 +01:00
test(device-config-templates): Add tests for device config template
This commit is contained in:
71
tests/test_interfaces_config_templates.py
Normal file
71
tests/test_interfaces_config_templates.py
Normal file
@@ -0,0 +1,71 @@
|
||||
"""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
|
||||
)
|
||||
Reference in New Issue
Block a user