mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
feat: add PositionerControlLine
This commit is contained in:
@ -7,12 +7,14 @@ from bec_lib.messages import ScanQueueMessage
|
||||
from qtpy.QtGui import QValidator
|
||||
|
||||
from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox
|
||||
from bec_widgets.widgets.positioner_box.positioner_control_line import PositionerControlLine
|
||||
|
||||
from .client_mocks import mocked_client
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def positioner_box(qtbot, mocked_client):
|
||||
"""Fixture for PositionerBox widget"""
|
||||
with mock.patch("bec_widgets.widgets.positioner_box.positioner_box.uuid.uuid4") as mock_uuid:
|
||||
mock_uuid.return_value = "fake_uuid"
|
||||
with mock.patch(
|
||||
@ -25,6 +27,7 @@ def positioner_box(qtbot, mocked_client):
|
||||
|
||||
|
||||
def test_positioner_box(positioner_box):
|
||||
"""Test init of positioner box"""
|
||||
assert positioner_box.device == "samx"
|
||||
data = positioner_box.dev["samx"].read()
|
||||
# Avoid check for Positioner class from BEC in _init_device
|
||||
@ -42,6 +45,7 @@ def test_positioner_box(positioner_box):
|
||||
|
||||
|
||||
def test_positioner_box_update_limits(positioner_box):
|
||||
"""Test update of limits"""
|
||||
positioner_box._limits = None
|
||||
positioner_box.update_limits([0, 10])
|
||||
assert positioner_box._limits == [0, 10]
|
||||
@ -63,6 +67,7 @@ def test_positioner_box_update_limits(positioner_box):
|
||||
|
||||
|
||||
def test_positioner_box_on_stop(positioner_box):
|
||||
"""Test on stop button"""
|
||||
with mock.patch.object(positioner_box.client.connector, "send") as mock_send:
|
||||
positioner_box.on_stop()
|
||||
params = {"device": "samx", "rpc_id": "fake_uuid", "func": "stop", "args": [], "kwargs": {}}
|
||||
@ -76,6 +81,7 @@ def test_positioner_box_on_stop(positioner_box):
|
||||
|
||||
|
||||
def test_positioner_box_setpoint_change(positioner_box):
|
||||
"""Test positioner box setpoint change"""
|
||||
with mock.patch.object(positioner_box.dev["samx"], "move") as mock_move:
|
||||
positioner_box.ui.setpoint.setText("100")
|
||||
positioner_box.on_setpoint_change()
|
||||
@ -83,6 +89,7 @@ def test_positioner_box_setpoint_change(positioner_box):
|
||||
|
||||
|
||||
def test_positioner_box_on_tweak_right(positioner_box):
|
||||
"""Test tweak right button"""
|
||||
with mock.patch.object(positioner_box.dev["samx"], "move") as mock_move:
|
||||
positioner_box.ui.step_size.setValue(0.1)
|
||||
positioner_box.on_tweak_right()
|
||||
@ -90,6 +97,7 @@ def test_positioner_box_on_tweak_right(positioner_box):
|
||||
|
||||
|
||||
def test_positioner_box_on_tweak_left(positioner_box):
|
||||
"""Test tweak left button"""
|
||||
with mock.patch.object(positioner_box.dev["samx"], "move") as mock_move:
|
||||
positioner_box.ui.step_size.setValue(0.1)
|
||||
positioner_box.on_tweak_left()
|
||||
@ -97,8 +105,26 @@ def test_positioner_box_on_tweak_left(positioner_box):
|
||||
|
||||
|
||||
def test_positioner_box_setpoint_out_of_range(positioner_box):
|
||||
"""Test setpoint out of range"""
|
||||
positioner_box.update_limits([0, 10])
|
||||
positioner_box.ui.setpoint.setText("100")
|
||||
positioner_box.on_setpoint_change()
|
||||
assert positioner_box.ui.setpoint.text() == "100"
|
||||
assert positioner_box.ui.setpoint.hasAcceptableInput() == False
|
||||
|
||||
|
||||
def test_positioner_control_line(qtbot, mocked_client):
|
||||
"""Test PositionerControlLine.
|
||||
Inherits from PositionerBox, but the layout is changed. Check dimensions only
|
||||
"""
|
||||
with mock.patch("bec_widgets.widgets.positioner_box.positioner_box.uuid.uuid4") as mock_uuid:
|
||||
mock_uuid.return_value = "fake_uuid"
|
||||
with mock.patch(
|
||||
"bec_widgets.widgets.positioner_box.positioner_box.PositionerBox._check_device_is_valid",
|
||||
return_value=True,
|
||||
):
|
||||
db = PositionerControlLine(device="samx", client=mocked_client)
|
||||
qtbot.addWidget(db)
|
||||
|
||||
assert db.ui.device_box.height() == 70
|
||||
assert db.ui.device_box.width() == 800
|
||||
|
Reference in New Issue
Block a user