Browse Source

Create test_label_dialog.py

LaraStuStu 5 years ago
parent
commit
fc31efad87

+ 87 - 0
DataAnnotation/labelme/tests/labelme_tests/widgets_tests/test_label_dialog.py

@@ -0,0 +1,87 @@
+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 = widget.popUp('cat')
+    assert label == 'person'
+    assert flags == {}
+
+    # 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 = widget.popUp()
+    assert label == 'person'
+    assert flags == {}
+
+    # 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 = widget.popUp()
+    assert label == 'dog'
+    assert flags == {}