wip feat(psi_pos): (#118) add base with optional signals

This commit is contained in:
2025-06-20 12:07:25 +02:00
parent 3c3a163137
commit 245328adf1
2 changed files with 142 additions and 0 deletions

View File

@ -0,0 +1,27 @@
from unittest.mock import MagicMock
import pytest
from ophyd.device import Component as Cpt
from ophyd.signal import EpicsSignal
from ophyd.sim import FakeEpicsSignal, FakeEpicsSignalRO
from ophyd_devices.interfaces.base_classes.psi_positioner_base import (
PSIPositionerBase,
RequiredSignalNotSpecified,
)
def test_cannot_isntantiate_without_required_signals():
class PSITestPositionerWOSignal(PSIPositionerBase): ...
class PSITestPositionerWithSignal(PSIPositionerBase):
user_setpoint: EpicsSignal = Cpt(FakeEpicsSignal, ".VAL", limits=True, auto_monitor=True)
user_readback = Cpt(FakeEpicsSignalRO, ".RBV", kind="hinted", auto_monitor=True)
with pytest.raises(RequiredSignalNotSpecified) as e:
PSITestPositionerWOSignal("", name="")
assert e.match("user_setpoint")
assert e.match("user_readback")
dev = PSITestPositionerWithSignal("", name="")
assert dev.user_setpoint.get() == 0