1
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-12-28 09:51:19 +01:00
Files
bec_widgets/tests/unit_tests/test_alignment_gui.py

46 lines
1.6 KiB
Python

from unittest import mock
import pytest
from bec_lib import messages
from bec_widgets.applications.alignment.alignment_1d.alignment_1d import Alignment1D
from .client_mocks import mocked_client
from .conftest import create_widget
@pytest.fixture(scope="function")
def alignment_1d(qtbot, mocked_client):
"""Fixture for Alignment1D widget"""
with mock.patch(
"bec_widgets.applications.alignment.alignment_1d.alignment_1d.Alignment1D.init_ui"
):
widget = create_widget(qtbot, Alignment1D, client=mocked_client)
yield widget
def test_scan_status_callback(qtbot, alignment_1d):
"""Test the scan status callback."""
container = []
def callback(*args, **kwargs):
"""Callback function to store signal calls."""
container.append(args)
alignment_1d.motion_is_active.connect(callback)
with mock.patch.object(alignment_1d, "enable_ui") as mock_enable_ui:
for status in ["open", "aborted", "halted", "closed"]:
msg = messages.ScanStatusMessage(scan_id="tmp_id", status=status, info={})
alignment_1d.scan_status_callback(msg.content, {})
qtbot.wait(100)
if status in ["open"]:
assert mock.call(False) == mock_enable_ui.call_args_list[-1]
assert container[-1] == (True,)
else:
assert mock.call(True) == mock_enable_ui.call_args_list[-1]
assert container[-1] == (False,)
container.clear()
alignment_1d.scan_status_callback({"status": "invalid_status"}, {})
qtbot.wait(100)
assert not container