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

67 lines
2.3 KiB
Python

# pylint: skip-file
from unittest import mock
import pytest
from qtpy.QtCore import Qt
from qtpy.QtWidgets import QSizePolicy, QVBoxLayout, QWidget
from bec_widgets.qt_utils.compact_popup import CompactPopupWidget
class ContainedWidget(QWidget):
def __init__(self, parent):
super().__init__(parent)
class TestCompactPopupWidget(CompactPopupWidget):
def __init__(self):
super().__init__(layout=QVBoxLayout)
self.contained = QWidget(self)
self.addWidget(self.contained)
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
@pytest.fixture
def compact_popup(qtbot):
widget = TestCompactPopupWidget()
qtbot.addWidget(widget)
widget.show()
qtbot.wait_until(widget.isVisible)
yield widget
def test_widget_closing(qtbot, compact_popup):
with mock.patch.object(compact_popup.contained, "close") as close_method:
compact_popup.close()
qtbot.waitUntil(lambda: not compact_popup.isVisible(), timeout=1000)
close_method.assert_called_once()
def test_size_policy(compact_popup):
csp = compact_popup.sizePolicy()
assert csp.horizontalPolicy() == QSizePolicy.Expanding
assert csp.verticalPolicy() == QSizePolicy.Minimum
compact_popup.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding)
csp = compact_popup.sizePolicy()
assert csp.horizontalPolicy() == QSizePolicy.Minimum
assert csp.verticalPolicy() == QSizePolicy.Expanding
compact_popup.compact_view = True
csp = compact_popup.sizePolicy()
assert csp.horizontalPolicy() == QSizePolicy.Fixed
assert csp.verticalPolicy() == QSizePolicy.Fixed
compact_popup.compact_view = False
csp = compact_popup.sizePolicy()
assert csp.horizontalPolicy() == QSizePolicy.Minimum
assert csp.verticalPolicy() == QSizePolicy.Expanding
def test_open_full_view(qtbot, compact_popup):
qtbot.waitUntil(compact_popup.container.isVisible, timeout=1000)
compact_popup.compact_view = True
qtbot.waitUntil(compact_popup.compact_view_widget.isVisible, timeout=1000)
qtbot.mouseClick(compact_popup.compact_show_popup, Qt.LeftButton)
qtbot.waitUntil(compact_popup.container.isVisible, timeout=1000)
compact_popup._popup_window.close()
qtbot.waitUntil(lambda: not compact_popup.container.isVisible(), timeout=1000)