87 lines
2.3 KiB
Python
87 lines
2.3 KiB
Python
import types
|
|
from unittest.mock import MagicMock
|
|
|
|
from aare.common.models import SampleShortInfo
|
|
from aare.common.exception_handler import LoopCenteringFailed
|
|
from aare.daq.daq import AareDAQ
|
|
|
|
|
|
def test_execute_loop_centering_rejects_invalid_sample():
|
|
daq = object.__new__(AareDAQ)
|
|
daq._AareDAQ__set_state = MagicMock()
|
|
daq._AareDAQ__devs = MagicMock()
|
|
daq._AareDAQ__aare = MagicMock()
|
|
daq._handle_operation_error = MagicMock()
|
|
daq._create_loop_centering_service = MagicMock()
|
|
|
|
result = daq._execute_loop_centering(None)
|
|
|
|
assert result is False
|
|
daq._create_loop_centering_service.assert_not_called()
|
|
|
|
|
|
def test_execute_loop_centering_handles_service_failure():
|
|
daq = object.__new__(AareDAQ)
|
|
daq._AareDAQ__set_state = MagicMock()
|
|
daq._AareDAQ__devs = MagicMock()
|
|
daq._AareDAQ__aare = MagicMock()
|
|
daq._handle_operation_error = MagicMock()
|
|
daq.save_screenshot_db = MagicMock()
|
|
|
|
sample = SampleShortInfo(
|
|
db_id=1,
|
|
sample_name="S1",
|
|
puck_name="P1",
|
|
dewar_name="D1",
|
|
run_number=1,
|
|
user="p1",
|
|
pin=1,
|
|
location=None,
|
|
)
|
|
|
|
service = MagicMock()
|
|
service.run.return_value = types.SimpleNamespace(
|
|
success=False,
|
|
comment="failed",
|
|
error=LoopCenteringFailed("failed"),
|
|
)
|
|
daq._create_loop_centering_service = MagicMock(return_value=service)
|
|
|
|
result = daq._execute_loop_centering(sample)
|
|
|
|
assert result is False
|
|
daq._handle_operation_error.assert_called_once()
|
|
|
|
|
|
def test_execute_loop_centering_handles_service_success():
|
|
daq = object.__new__(AareDAQ)
|
|
daq._AareDAQ__set_state = MagicMock()
|
|
daq._AareDAQ__devs = MagicMock()
|
|
daq._AareDAQ__aare = MagicMock()
|
|
daq._handle_operation_error = MagicMock()
|
|
daq.save_screenshot_db = MagicMock()
|
|
|
|
sample = SampleShortInfo(
|
|
db_id=1,
|
|
sample_name="S1",
|
|
puck_name="P1",
|
|
dewar_name="D1",
|
|
run_number=1,
|
|
user="p1",
|
|
pin=1,
|
|
location=None,
|
|
)
|
|
|
|
service = MagicMock()
|
|
service.run.return_value = types.SimpleNamespace(
|
|
success=True,
|
|
comment=None,
|
|
error=None,
|
|
)
|
|
daq._create_loop_centering_service = MagicMock(return_value=service)
|
|
|
|
result = daq._execute_loop_centering(sample)
|
|
|
|
assert result is True
|
|
daq.save_screenshot_db.assert_called_once()
|