mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
fix: test_config_dialog.py QApplication instance added
This commit is contained in:
@ -2,7 +2,7 @@ import os
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from PyQt5.QtWidgets import QTabWidget, QTableWidgetItem
|
from PyQt5.QtWidgets import QTabWidget, QTableWidgetItem, QApplication
|
||||||
|
|
||||||
from bec_widgets.widgets import ConfigDialog
|
from bec_widgets.widgets import ConfigDialog
|
||||||
|
|
||||||
@ -24,8 +24,23 @@ config_device_no_entry = load_config(
|
|||||||
config_scan = load_config(os.path.join(current_path, "test_configs/config_scan.yaml"))
|
config_scan = load_config(os.path.join(current_path, "test_configs/config_scan.yaml"))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module") # TODO is this needed?
|
||||||
|
def app():
|
||||||
|
app = QApplication([])
|
||||||
|
yield app
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def config_dialog(qtbot):
|
def qtbot(app, qtbot): # TODO is this needed?
|
||||||
|
"""A qtbot fixture to ensure that widgets are closed after being used."""
|
||||||
|
qtbot.old_widgets = set(app.topLevelWidgets())
|
||||||
|
yield qtbot
|
||||||
|
new_widgets = set(app.topLevelWidgets()) - qtbot.old_widgets
|
||||||
|
for widget in new_widgets:
|
||||||
|
widget.close()
|
||||||
|
|
||||||
|
|
||||||
|
def setup_config_dialog(qtbot):
|
||||||
widget = ConfigDialog()
|
widget = ConfigDialog()
|
||||||
qtbot.addWidget(widget)
|
qtbot.addWidget(widget)
|
||||||
qtbot.waitExposed(widget)
|
qtbot.waitExposed(widget)
|
||||||
@ -33,7 +48,8 @@ def config_dialog(qtbot):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("config", [config_device, config_scan])
|
@pytest.mark.parametrize("config", [config_device, config_scan])
|
||||||
def test_load_config(config_dialog, config):
|
def test_load_config(qtbot, config):
|
||||||
|
config_dialog = setup_config_dialog(qtbot)
|
||||||
config_dialog.load_config(config)
|
config_dialog.load_config(config)
|
||||||
|
|
||||||
assert (
|
assert (
|
||||||
@ -52,7 +68,8 @@ def test_load_config(config_dialog, config):
|
|||||||
(config_device_no_entry, False),
|
(config_device_no_entry, False),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_initialization(config_dialog, config, scan_mode):
|
def test_initialization(qtbot, config, scan_mode):
|
||||||
|
config_dialog = setup_config_dialog(qtbot)
|
||||||
config_dialog.load_config(config)
|
config_dialog.load_config(config)
|
||||||
|
|
||||||
assert isinstance(config_dialog, ConfigDialog)
|
assert isinstance(config_dialog, ConfigDialog)
|
||||||
@ -78,7 +95,8 @@ def test_initialization(config_dialog, config, scan_mode):
|
|||||||
) # Ensures plot tab widget exists in default mode
|
) # Ensures plot tab widget exists in default mode
|
||||||
|
|
||||||
|
|
||||||
def test_edit_and_apply_config(config_dialog):
|
def test_edit_and_apply_config(qtbot):
|
||||||
|
config_dialog = setup_config_dialog(qtbot)
|
||||||
config_dialog.load_config(config_device)
|
config_dialog.load_config(config_device)
|
||||||
|
|
||||||
config_dialog.comboBox_appearance.setCurrentText("white")
|
config_dialog.comboBox_appearance.setCurrentText("white")
|
||||||
@ -92,7 +110,8 @@ def test_edit_and_apply_config(config_dialog):
|
|||||||
assert applied_config["plot_settings"]["colormap"] == "viridis"
|
assert applied_config["plot_settings"]["colormap"] == "viridis"
|
||||||
|
|
||||||
|
|
||||||
def test_edit_and_apply_config_scan_mode(config_dialog):
|
def test_edit_and_apply_config_scan_mode(qtbot):
|
||||||
|
config_dialog = setup_config_dialog(qtbot)
|
||||||
config_dialog.load_config(config_scan)
|
config_dialog.load_config(config_scan)
|
||||||
|
|
||||||
config_dialog.comboBox_appearance.setCurrentText("white")
|
config_dialog.comboBox_appearance.setCurrentText("white")
|
||||||
@ -108,7 +127,8 @@ def test_edit_and_apply_config_scan_mode(config_dialog):
|
|||||||
assert applied_config["plot_settings"]["scan_types"] is True
|
assert applied_config["plot_settings"]["scan_types"] is True
|
||||||
|
|
||||||
|
|
||||||
def test_add_new_scan(config_dialog):
|
def test_add_new_scan(qtbot):
|
||||||
|
config_dialog = setup_config_dialog(qtbot)
|
||||||
# Ensure the tab count is initially 1 (from the default config)
|
# Ensure the tab count is initially 1 (from the default config)
|
||||||
assert config_dialog.tabWidget_scan_types.count() == 1
|
assert config_dialog.tabWidget_scan_types.count() == 1
|
||||||
|
|
||||||
@ -122,7 +142,8 @@ def test_add_new_scan(config_dialog):
|
|||||||
assert config_dialog.tabWidget_scan_types.tabText(1) == "Test Scan Tab"
|
assert config_dialog.tabWidget_scan_types.tabText(1) == "Test Scan Tab"
|
||||||
|
|
||||||
|
|
||||||
def test_add_new_plot_and_modify(config_dialog):
|
def test_add_new_plot_and_modify(qtbot):
|
||||||
|
config_dialog = setup_config_dialog(qtbot)
|
||||||
# Ensure the tab count is initially 1 and it is called "Default"
|
# Ensure the tab count is initially 1 and it is called "Default"
|
||||||
assert config_dialog.tabWidget_scan_types.count() == 1
|
assert config_dialog.tabWidget_scan_types.count() == 1
|
||||||
assert config_dialog.tabWidget_scan_types.tabText(0) == "Default"
|
assert config_dialog.tabWidget_scan_types.tabText(0) == "Default"
|
||||||
|
Reference in New Issue
Block a user