Files
superqt/tests/test_collapsible.py
Talley Lambert d7afa8824c Fix some small linting issues. (#41)
* fix some linting

* add tests

* update versions

* update setup
2021-11-21 19:09:34 -05:00

87 lines
2.3 KiB
Python

"""A test module for testing collapsible"""
from superqt import QCollapsible
from superqt.qtcompat.QtCore import QEasingCurve
from superqt.qtcompat.QtWidgets import QPushButton
def test_checked_initialization(qtbot):
"""Test simple collapsible"""
wdg1 = QCollapsible("Advanced analysis")
wdg1.expand(False)
assert wdg1.isExpanded()
assert wdg1._content.maximumHeight() > 0
wdg2 = QCollapsible("Advanced analysis")
wdg1.collapse(False)
assert not wdg2.isExpanded()
assert wdg2._content.maximumHeight() == 0
def test_content_hide_show(qtbot):
"""Test collapsible with content"""
# Create child component
collapsible = QCollapsible("Advanced analysis")
for i in range(10):
collapsible.addWidget(QPushButton(f"Content button {i + 1}"))
collapsible.collapse(False)
assert not collapsible.isExpanded()
assert collapsible._content.maximumHeight() == 0
collapsible.expand(False)
assert collapsible.isExpanded()
assert collapsible._content.maximumHeight() > 0
def test_locking(qtbot):
"""Test locking collapsible"""
wdg1 = QCollapsible()
assert wdg1.locked() is False
wdg1.setLocked(True)
assert wdg1.locked() is True
assert not wdg1.isExpanded()
wdg1._toggle_btn.setChecked(True)
assert not wdg1.isExpanded()
wdg1._toggle()
assert not wdg1.isExpanded()
wdg1.expand()
assert not wdg1.isExpanded()
wdg1._toggle_btn.setChecked(False)
assert not wdg1.isExpanded()
wdg1.setLocked(False)
wdg1.expand()
assert wdg1.isExpanded()
assert wdg1._toggle_btn.isChecked()
def test_changing_animation_settings(qtbot):
"""Quick test for changing animation settings"""
wdg = QCollapsible()
wdg.setDuration(600)
wdg.setEasingCurve(QEasingCurve.Type.InElastic)
assert wdg._animation.easingCurve() == QEasingCurve.Type.InElastic
assert wdg._animation.duration() == 600
def test_changing_content(qtbot):
"""Test changing the content"""
content = QPushButton()
wdg = QCollapsible()
wdg.setContent(content)
assert wdg._content == content
def test_changing_text(qtbot):
"""Test changing the content"""
wdg = QCollapsible()
wdg.setText("Hi new text")
assert wdg.text() == "Hi new text"
assert wdg._toggle_btn.text() == QCollapsible._COLLAPSED + "Hi new text"