0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +02:00

test(setting_dialog): tests added

This commit is contained in:
2024-07-07 22:15:28 +02:00
committed by wyzula_j
parent 2020953b93
commit 74a249bd06

View File

@ -0,0 +1,98 @@
from unittest.mock import MagicMock, patch
import pytest
from qtpy.QtWidgets import QWidget
from bec_widgets.qt_utils.settings_dialog import SettingWidget, SettingsDialog
###################################
# SettingWidget base class tests
###################################
@pytest.fixture
def setting_widget(qtbot):
widget = SettingWidget()
qtbot.addWidget(widget)
qtbot.waitExposed(widget)
yield widget
widget.close()
def test_setting_widget_initialization(setting_widget):
assert setting_widget.target_widget is None
def test_setting_widget_set_target_widget(setting_widget):
mock_target = MagicMock(spec=QWidget)
setting_widget.set_target_widget(mock_target)
assert setting_widget.target_widget == mock_target
def test_setting_widget_accept_changes(setting_widget):
with patch.object(setting_widget, "accept_changes") as mock_accept_changes:
setting_widget.accept_changes()
mock_accept_changes.assert_called_once()
def test_setting_widget_display_current_settings(setting_widget):
config_dict = {"setting1": "value1", "setting2": "value2"}
with patch.object(setting_widget, "display_current_settings") as mock_display_current_settings:
setting_widget.display_current_settings(config_dict)
mock_display_current_settings.assert_called_once_with(config_dict)
###################################
# SettingsDialog tests
###################################
@pytest.fixture
def settings_dialog(qtbot):
parent_widget = QWidget()
settings_widget = SettingWidget()
settings_widget.set_target_widget = MagicMock()
settings_widget.display_current_settings = MagicMock()
settings_widget.accept_changes = MagicMock()
dialog = SettingsDialog(
parent=parent_widget,
settings_widget=settings_widget,
window_title="Test Settings",
config={"setting1": "value1", "setting2": "value2"},
)
qtbot.addWidget(dialog)
qtbot.waitExposed(dialog)
yield dialog, parent_widget, settings_widget
dialog.close()
def test_settings_dialog_initialization(settings_dialog):
dialog, parent_widget, settings_widget = settings_dialog
assert dialog.windowTitle() == "Test Settings"
settings_widget.set_target_widget.assert_called_once_with(parent_widget)
settings_widget.display_current_settings.assert_called_once_with(
{"setting1": "value1", "setting2": "value2"}
)
def test_settings_dialog_accept(settings_dialog, qtbot):
dialog, _, settings_widget = settings_dialog
dialog.button_box.buttons()[0].click() # OK Button
settings_widget.accept_changes.assert_called_once()
def test_settings_dialog_reject(settings_dialog, qtbot):
dialog, _, _ = settings_dialog
with patch.object(dialog, "reject", wraps=dialog.reject) as mock_reject:
dialog.button_box.buttons()[1].click() # Cancel Button
mock_reject.assert_called_once()
def test_settings_dialog_apply_changes(settings_dialog, qtbot):
dialog, _, settings_widget = settings_dialog
dialog.apply_button.click()
settings_widget.accept_changes.assert_called_once()