Files
superqt/tests/test_eliding_line_edit.py
Daniel Althviz Moré 9119336de5 Add QElidingLineEdit class for elidable QLineEdits (#154)
* Add QElidingLineEdit class for elidable QLineEdits

* Fix QElidingLineEdit tests on Linux and MacOS

* Testing

---------

Co-authored-by: Talley Lambert <talley.lambert@gmail.com>
2023-08-03 11:08:12 -04:00

61 lines
1.8 KiB
Python

from qtpy.QtCore import QSize, Qt
from qtpy.QtGui import QResizeEvent
from superqt import QElidingLineEdit
TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do"
ELLIPSIS = ""
def test_init_text_eliding_line_edit(qtbot):
wdg = QElidingLineEdit(TEXT)
qtbot.addWidget(wdg)
oldsize = QSize(100, 20)
wdg.resize(oldsize)
assert wdg._elidedText().endswith(ELLIPSIS)
newsize = QSize(500, 20)
wdg.resize(newsize)
wdg.resizeEvent(QResizeEvent(oldsize, newsize)) # for test coverage
assert wdg._elidedText() == TEXT
assert wdg.text() == TEXT
def test_set_text_eliding_line_edit(qtbot):
wdg = QElidingLineEdit()
qtbot.addWidget(wdg)
wdg.resize(500, 20)
wdg.setText(TEXT)
assert not wdg._elidedText().endswith(ELLIPSIS)
wdg.resize(100, 20)
assert wdg._elidedText().endswith(ELLIPSIS)
def test_set_elide_mode_eliding_line_edit(qtbot):
wdg = QElidingLineEdit()
qtbot.addWidget(wdg)
wdg.resize(500, 20)
wdg.setText(TEXT)
assert not wdg._elidedText().endswith(ELLIPSIS)
wdg.resize(100, 20)
# ellipses should be to the right
assert wdg._elidedText().endswith(ELLIPSIS)
# ellipses should be to the left
wdg.setElideMode(Qt.TextElideMode.ElideLeft)
assert wdg._elidedText().startswith(ELLIPSIS)
assert wdg.elideMode() == Qt.TextElideMode.ElideLeft
# no ellipses should be shown
wdg.setElideMode(Qt.TextElideMode.ElideNone)
assert ELLIPSIS not in wdg._elidedText()
def test_set_elipses_width_eliding_line_edit(qtbot):
wdg = QElidingLineEdit()
qtbot.addWidget(wdg)
wdg.resize(500, 20)
wdg.setText(TEXT)
assert not wdg._elidedText().endswith(ELLIPSIS)
wdg.setEllipsesWidth(int(wdg.width() / 2))
assert wdg._elidedText().endswith(ELLIPSIS)