Skip to content

Commit

Permalink
TST: structure for ui tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rpartzsch committed Jan 17, 2025
1 parent b70ae10 commit a2ce475
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 2 deletions.
4 changes: 3 additions & 1 deletion motor_stage_ui/motor_stage_gui.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from motor_stage_ui.pi_stages_interface import PIStagesInterface
from motor_stage_ui.pi_stages_interface import SerialInterface
from motor_stage_ui import logger
import motor_stage_ui

Expand All @@ -17,7 +18,7 @@


class MainWindow(QMainWindow):
def __init__(self, config_path):
def __init__(self, config_path, interface=SerialInterface):
super().__init__()

self.log = logger.setup_main_logger(__class__.__name__, logging.DEBUG)
Expand All @@ -35,6 +36,7 @@ def __init__(self, config_path):
PIStagesInterface(
port=self.conf[motor]["port"],
baud_rate=self.conf[motor]["baud_rate"],
interface=interface,
)
)
stage = self.conf[motor]["stage_type"]
Expand Down
25 changes: 25 additions & 0 deletions motor_stage_ui/test/test_gui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from pathlib import Path
import pytest
from motor_stage_ui.motor_stage_gui import MainWindow
from motor_stage_ui.test.utils import SerialInterfaceMock
from PyQt5 import QtCore

FILEPATH = Path(__file__).parent
CONFIG_FILE = FILEPATH / "test_configuration.yaml"

INTERFACE = SerialInterfaceMock


@pytest.fixture
def app(qtbot):
motor_gui = MainWindow(CONFIG_FILE, interface=INTERFACE)
return motor_gui


def test_init_clicked(app):
app.mouseClick(app.init_clicked, app.QtCore.Qt.MouseButton.LeftButton)
assert app.motor.serial_interface._serial_commands[-3:] == [
b"\x010MN\r",
b"\x010RT\r",
b"\x010SV200000\r",
]
11 changes: 10 additions & 1 deletion motor_stage_ui/test/test_pi_stage_interface.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from pathlib import Path
import os
import pytest
import yaml
from motor_stage_ui.pi_stages_interface import PIStagesInterface
Expand Down Expand Up @@ -40,6 +39,16 @@ def test_init_motor():
]


def test_motor_off():
ADDRESS = TESTCONFIG["x_axis"]["address"]
PISTAGES.motor_off(address=ADDRESS)
assert PISTAGES.serial_interface._serial_commands[-1] == b"\x010MF\r"

ADDRESS = TESTCONFIG["rot"]["address"]
PISTAGES.motor_off(address=ADDRESS)
assert PISTAGES.serial_interface._serial_commands[-1] == b"\x012MF\r"


def test_find_edge():
ADDRESS = TESTCONFIG["x_axis"]["address"]
UNIT = TESTCONFIG["x_axis"]["unit"]
Expand Down
27 changes: 27 additions & 0 deletions motor_stage_ui/test/test_terminal_ui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from click.testing import CliRunner
import motor_stage_ui.motor_stage_terminal as terminal_ui


def test_motor():
runner = CliRunner()
runner.invoke(terminal_ui.motor)


def test_init():
runner = CliRunner()
runner.invoke(terminal_ui.init)


def test_gohome():
runner = CliRunner()
runner.invoke(terminal_ui.gohome, ["x_axis"])


def test_pos():
runner = CliRunner()
runner.invoke(terminal_ui.pos, ["x_axis"])


def test_move():
runner = CliRunner()
runner.invoke(terminal_ui.move, ["-a 3cm x_axis"])

0 comments on commit a2ce475

Please sign in to comment.