mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-13 03:01:50 +02:00
test(scan_history): add initial tests
This commit is contained in:
76
tests/unit_tests/test_scan_history_browser.py
Normal file
76
tests/unit_tests/test_scan_history_browser.py
Normal file
@ -0,0 +1,76 @@
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
from bec_lib.messages import ScanHistoryMessage
|
||||
from pytestqt import qtbot
|
||||
from qtpy import QtCore
|
||||
|
||||
from bec_widgets.widgets.services.scan_history_browser.components import (
|
||||
ScanHistoryDeviceViewer,
|
||||
ScanHistoryMetadataViewer,
|
||||
ScanHistoryView,
|
||||
)
|
||||
|
||||
from .client_mocks import mocked_client
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def scan_history_msg():
|
||||
"""Fixture to create a mock ScanHistoryMessage."""
|
||||
yield ScanHistoryMessage(
|
||||
scan_id="test_scan",
|
||||
dataset_number=1,
|
||||
scan_number=1,
|
||||
scan_name="Test Scan",
|
||||
file_path="/path/to/scan",
|
||||
start_time=1751957906.3310962,
|
||||
end_time=1751957907.3310962, # 1s later
|
||||
exit_status="closed",
|
||||
num_points=10,
|
||||
request_inputs={"some_input": "value"},
|
||||
device_data_info={"device1": 10, "device2": 20, "device3": 1},
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def scan_history_device_viewer(qtbot, mocked_client):
|
||||
widget = ScanHistoryDeviceViewer(client=mocked_client)
|
||||
qtbot.addWidget(widget)
|
||||
qtbot.waitExposed(widget)
|
||||
yield widget
|
||||
|
||||
|
||||
def test_scan_history_device_viewer_init(scan_history_device_viewer):
|
||||
"""Test the initialization of ScanHistoryDeviceViewer."""
|
||||
assert scan_history_device_viewer.scan_history_msg is None
|
||||
assert scan_history_device_viewer._selected_device == ""
|
||||
assert scan_history_device_viewer.device_model.devices == []
|
||||
assert scan_history_device_viewer.device_model.rowCount() == 0
|
||||
|
||||
|
||||
def test_scan_history_device_viewer_update_logic(
|
||||
qtbot, scan_history_device_viewer, scan_history_msg
|
||||
):
|
||||
"""Test updating devices from scan history."""
|
||||
# Update with first scan history message
|
||||
assert scan_history_device_viewer.scan_history_msg is None
|
||||
scan_history_device_viewer.update_devices_from_scan_history(scan_history_msg)
|
||||
assert scan_history_device_viewer.scan_history_msg == scan_history_msg
|
||||
assert scan_history_device_viewer.device_model.devices == [
|
||||
("device2", 20),
|
||||
("device1", 10),
|
||||
("device3", 1),
|
||||
] # sorted by number of points
|
||||
with qtbot.waitExposed(scan_history_device_viewer.device_combo.view()):
|
||||
qtbot.mouseClick(scan_history_device_viewer.device_combo, qtbot.MouseButton.LeftButton)
|
||||
# qtbot.waitExposed(scan_history_device_viewer.device_combo.view())
|
||||
index = scan_history_device_viewer.device_combo.model().index(1, 0)
|
||||
rect = scan_history_device_viewer.device_combo.view().visualRect(index)
|
||||
with qtbot.waitExposed(scan_history_device_viewer.device_combo.currentIndexChanged):
|
||||
qtbot.mouseClick(
|
||||
scan_history_device_viewer.device_combo.view().viewport(),
|
||||
QtCore.Qt.LeftButton,
|
||||
pos=rect.center(),
|
||||
)
|
||||
|
||||
# Now
|
Reference in New Issue
Block a user