test: add test for simulated devices and BECprotocols

This commit is contained in:
appel_c 2024-03-28 10:20:14 +01:00
parent 8b77df833f
commit b34817acf8

View File

@ -3,17 +3,30 @@
# pylint: disable: all
import os
from unittest import mock
import pytest
import numpy as np
import h5py
from ophyd_devices.utils.bec_device_base import BECDeviceBase, BECDevice
from ophyd_devices.sim.sim import SimMonitor, SimCamera, SimPositioner
from ophyd_devices.sim.sim_frameworks import H5ImageReplayProxy, SlitProxy
from tests.utils import DMMock
import pytest
from ophyd import Device, Signal
from ophyd_devices.ophyd_base_devices.bec_protocols import (
BECDeviceProtocol,
BECFlyerProtocol,
BECPositionerProtocol,
BECScanProtocol,
BECSignalProtocol,
)
from ophyd_devices.sim.sim import SimCamera, SimFlyer, SimMonitor, SimPositioner
from ophyd_devices.sim.sim_signals import ReadOnlySignal
from ophyd_devices.utils.bec_device_base import BECDevice, BECDeviceBase
from tests.utils import DMMock
@pytest.fixture(scope="function")
def signal(name="signal"):
"""Fixture for Signal."""
sig = ReadOnlySignal(name=name, value=0)
yield sig
@pytest.fixture(scope="function")
def monitor(name="monitor"):
@ -58,10 +71,48 @@ def slitproxy_fixture(name="slit_proxy"):
yield proxy, camera, samx
@pytest.fixture(scope="function")
def flyer(name="flyer"):
"""Fixture for SimFlyer."""
dm = DMMock()
fly = SimFlyer(name=name, device_manager=dm)
yield fly
def test_signal__init__(signal):
"""Test the BECProtocol class"""
assert isinstance(signal, BECDeviceProtocol)
assert isinstance(signal, BECSignalProtocol)
def test_monitor__init__(monitor):
"""Test the __init__ method of SimMonitor."""
assert isinstance(monitor, SimMonitor)
assert isinstance(monitor, BECDevice)
assert isinstance(monitor, BECDeviceProtocol)
assert isinstance(monitor, BECScanProtocol)
def test_camera__init__(camera):
"""Test the __init__ method of SimMonitor."""
assert isinstance(camera, SimCamera)
assert isinstance(camera, BECDeviceProtocol)
assert isinstance(camera, BECScanProtocol)
def test_positioner__init__(positioner):
"""Test the __init__ method of SimPositioner."""
assert isinstance(positioner, SimPositioner)
assert isinstance(positioner, BECDeviceProtocol)
assert isinstance(positioner, BECScanProtocol)
assert isinstance(positioner, BECPositionerProtocol)
def test_flyer__init__(flyer):
"""Test the __init__ method of SimFlyer."""
assert isinstance(flyer, SimFlyer)
assert isinstance(flyer, BECDeviceProtocol)
assert isinstance(flyer, BECScanProtocol)
assert isinstance(flyer, BECFlyerProtocol)
@pytest.mark.parametrize("center", [-10, 0, 10])
@ -87,12 +138,6 @@ def test_monitor_readback(monitor, center):
)
def test_camera__init__(camera):
"""Test the __init__ method of SimMonitor."""
assert isinstance(camera, SimCamera)
assert isinstance(camera, BECDevice)
@pytest.mark.parametrize("amplitude, noise_multiplier", [(0, 1), (100, 10), (1000, 50)])
def test_camera_readback(camera, amplitude, noise_multiplier):
"""Test the readback method of SimMonitor."""
@ -112,12 +157,6 @@ def test_camera_readback(camera, amplitude, noise_multiplier):
assert (camera.image.get() <= (amplitude + noise_multiplier + 1)).all()
def test_positioner__init__(positioner):
"""Test the __init__ method of SimPositioner."""
assert isinstance(positioner, SimPositioner)
assert isinstance(positioner, BECDevice)
def test_positioner_move(positioner):
"""Test the move method of SimPositioner."""
positioner.move(0).wait()