mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2026-02-04 06:08:42 +01:00
fix(undulator): remove raise for operator controlled pvs, log instead and return None
This commit is contained in:
@@ -45,9 +45,10 @@ class UndulatorEpicsSignal(EpicsSignal):
|
|||||||
If the undulator is operator controlled, it will not move.
|
If the undulator is operator controlled, it will not move.
|
||||||
"""
|
"""
|
||||||
if self.parent.select_control.get() == UNDULATORCONTROL.OPERATOR.value:
|
if self.parent.select_control.get() == UNDULATORCONTROL.OPERATOR.value:
|
||||||
raise PermissionError(
|
logger.error(
|
||||||
f"Cannot use put for signal {self.name}; Undulator is operator controlled!"
|
f"Cannot use put for signal {self.name}; Undulator is operator controlled!"
|
||||||
)
|
)
|
||||||
|
return # Do not raise an error, just log it and return None.
|
||||||
return super().put(
|
return super().put(
|
||||||
value,
|
value,
|
||||||
force=force,
|
force=force,
|
||||||
|
|||||||
@@ -56,7 +56,11 @@ def test_undulator_raises_when_disabled(mock_undulator):
|
|||||||
|
|
||||||
def test_undulator_stop_call(mock_undulator):
|
def test_undulator_stop_call(mock_undulator):
|
||||||
mock_undulator.select_control._read_pv.mock_data = 1
|
mock_undulator.select_control._read_pv.mock_data = 1
|
||||||
|
mock_undulator.stop_signal.put(0)
|
||||||
mock_undulator.stop()
|
mock_undulator.stop()
|
||||||
|
assert mock_undulator.stop_signal.get() == 1
|
||||||
|
mock_undulator.stop_signal.put(0)
|
||||||
mock_undulator.select_control._read_pv.mock_data = 0
|
mock_undulator.select_control._read_pv.mock_data = 0
|
||||||
with pytest.raises(PermissionError) as e:
|
# Error should just be logged, not raised.
|
||||||
mock_undulator.stop()
|
mock_undulator.stop()
|
||||||
|
assert mock_undulator.stop_signal.get() == 0
|
||||||
|
|||||||
Reference in New Issue
Block a user