test(MockPv): improve MockPV, allow start value to be set

This commit is contained in:
2025-12-08 18:40:09 +01:00
committed by Christian Appel
parent c4296b0399
commit 1b2eeccbb8
3 changed files with 28 additions and 17 deletions

View File

@@ -9,8 +9,7 @@ from unittest import mock
import ophyd
import pytest
from ophyd_devices.devices.epics_motor_ex import EpicsMotorEx
from ophyd_devices.devices.psi_motor import EpicsMotor, EpicsMotorEC, EpicsUserMotors, SpmgStates
from ophyd_devices.devices.psi_motor import EpicsMotor, EpicsMotorEC, EpicsUserMotorVME, SpmgStates
from ophyd_devices.tests.utils import MockPV, patched_device
@@ -169,7 +168,7 @@ def test_epics_vme_user_motor():
with mock.patch.object(ophyd, "cl") as mock_cl:
mock_cl.get_pv = MockPV
mock_cl.thread_class = threading.Thread
device = EpicsUserMotors(name="test_motor_ex", prefix="SIM:MOTOR:EX")
device = EpicsUserMotorVME(name="test_motor_ex", prefix="SIM:MOTOR:EX")
# Should raise
with pytest.raises(RuntimeError):
device.wait_for_connection(all_signals=True)

View File

@@ -12,15 +12,8 @@ from ophyd import Device, EpicsSignalRO, Signal
from ophyd.status import WaitTimeoutError
from typeguard import TypeCheckError
from ophyd_devices import (
AndStatus,
DeviceStatus,
MoveStatus,
Status,
StatusBase,
SubscriptionStatus,
)
from ophyd_devices.tests.utils import MockPV
from ophyd_devices.devices.psi_motor import EpicsMotor
from ophyd_devices.tests.utils import MockPV, patched_device
from ophyd_devices.utils.bec_signals import (
AsyncMultiSignal,
AsyncSignal,
@@ -31,8 +24,13 @@ from ophyd_devices.utils.bec_signals import (
ProgressSignal,
)
from ophyd_devices.utils.psi_device_base_utils import (
AndStatus,
CompareStatus,
DeviceStatus,
FileHandler,
MoveStatus,
StatusBase,
SubscriptionStatus,
TaskHandler,
TaskKilledError,
TaskState,
@@ -1021,3 +1019,14 @@ def test_patched_status_objects():
move_st.wait(timeout=10)
assert move_st.done is True
assert move_st.success is False
@pytest.fixture(scope="function")
def mock_device_with_initial_value():
with patched_device(EpicsMotor, _mock_pv_initial_value=2, name="motor") as mtr:
yield mtr
def test_mock_device_initial_value(mock_device_with_initial_value: EpicsMotor):
mtr = mock_device_with_initial_value
assert mtr.velocity.get() == 2