from qtpy import QtCore from qtpy import QtWidgets from labelme.widgets import LabelDialog from labelme.widgets import LabelQLineEdit def test_LabelQLineEdit(qtbot): list_widget = QtWidgets.QListWidget() list_widget.addItems(["cat", "dog", "person"]) widget = LabelQLineEdit() widget.setListWidget(list_widget) qtbot.addWidget(widget) # key press to navigate in label list item = widget.list_widget.findItems("cat", QtCore.Qt.MatchExactly)[0] widget.list_widget.setCurrentItem(item) assert widget.list_widget.currentItem().text() == "cat" qtbot.keyPress(widget, QtCore.Qt.Key_Down) assert widget.list_widget.currentItem().text() == "dog" # key press to enter label qtbot.keyPress(widget, QtCore.Qt.Key_P) qtbot.keyPress(widget, QtCore.Qt.Key_E) qtbot.keyPress(widget, QtCore.Qt.Key_R) qtbot.keyPress(widget, QtCore.Qt.Key_S) qtbot.keyPress(widget, QtCore.Qt.Key_O) qtbot.keyPress(widget, QtCore.Qt.Key_N) assert widget.text() == "person" def test_LabelDialog_addLabelHistory(qtbot): labels = ["cat", "dog", "person"] widget = LabelDialog(labels=labels, sort_labels=True) qtbot.addWidget(widget) widget.addLabelHistory("bicycle") assert widget.labelList.count() == 4 widget.addLabelHistory("bicycle") assert widget.labelList.count() == 4 item = widget.labelList.item(0) assert item.text() == "bicycle" def test_LabelDialog_popUp(qtbot): labels = ["cat", "dog", "person"] widget = LabelDialog(labels=labels, sort_labels=True) qtbot.addWidget(widget) # popUp(text='cat') def interact(): qtbot.keyClick( widget.edit, QtCore.Qt.Key_P ) # enter 'p' for 'person' # NOQA qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA QtCore.QTimer.singleShot(500, interact) label, flags, group_id = widget.popUp("cat") assert label == "person" assert flags == {} assert group_id is None # popUp() def interact(): qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA QtCore.QTimer.singleShot(500, interact) label, flags, group_id = widget.popUp() assert label == "person" assert flags == {} assert group_id is None # popUp() + key_Up def interact(): qtbot.keyClick( widget.edit, QtCore.Qt.Key_Up ) # 'person' -> 'dog' # NOQA qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA QtCore.QTimer.singleShot(500, interact) label, flags, group_id = widget.popUp() assert label == "dog" assert flags == {} assert group_id is None