mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2025-12-27 23:51:28 +01:00
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import pytest
|
|
|
|
from ophyd_devices.devices.delay_generator_645 import (
|
|
DelayGenerator,
|
|
DelayGeneratorError,
|
|
TriggerSource,
|
|
)
|
|
from ophyd_devices.tests.utils import patched_device
|
|
|
|
|
|
@pytest.fixture(scope="function")
|
|
def mock_ddg():
|
|
with patched_device(DelayGenerator, name="ddg", prefix="X12SA-CPCL-DDG3:") as ddg:
|
|
yield ddg
|
|
|
|
|
|
def test_ddg_init(mock_ddg):
|
|
"""This test the initialization of the DelayGenerator"""
|
|
assert mock_ddg.name == "ddg"
|
|
assert mock_ddg.prefix == "X12SA-CPCL-DDG3:"
|
|
|
|
|
|
def test_set_trigger(mock_ddg):
|
|
"""This test the set_trigger method of the DelayGenerator"""
|
|
mock_ddg.set_trigger(TriggerSource.SINGLE_SHOT)
|
|
assert mock_ddg.source.get() == 5
|
|
mock_ddg.set_trigger(TriggerSource.INTERNAL)
|
|
assert mock_ddg.source.get() == 0
|
|
|
|
|
|
def test_burst_enable(mock_ddg):
|
|
"""This test the burst_enable method of the DelayGenerator"""
|
|
count = 10
|
|
delay = 0.1
|
|
period = 0.2
|
|
|
|
mock_ddg.burst_enable(count=count, delay=delay, period=period)
|
|
assert mock_ddg.burstMode.get() == 1
|
|
assert mock_ddg.burstCount.get() == count
|
|
assert mock_ddg.burstDelay.get() == delay
|
|
assert mock_ddg.burstPeriod.get() == period
|
|
assert mock_ddg.burstConfig.get() == 0
|
|
with pytest.raises(DelayGeneratorError):
|
|
delay = -1
|
|
mock_ddg.burst_enable(count=count, delay=delay, period=period)
|
|
with pytest.raises(DelayGeneratorError):
|
|
delay = 0
|
|
period = 0
|
|
mock_ddg.burst_enable(count=count, delay=delay, period=period)
|
|
|
|
|
|
def test_check_if_ddg_okay(mock_ddg):
|
|
"""This test the is_ddg_okay method of the DelayGenerator"""
|
|
# Test for when the status is okay
|
|
mock_ddg.status._read_pv.mock_data = "STATUS OK"
|
|
assert mock_ddg.check_if_ddg_okay() is None
|
|
# Test for when the status is not okay
|
|
mock_ddg.status._read_pv.mock_data = "STATUS NOT OK"
|
|
with pytest.raises(DelayGeneratorError):
|
|
mock_ddg.check_if_ddg_okay()
|