test_labelDialog.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. from qtpy import QtCore
  2. from qtpy import QtWidgets
  3. from labelme import labelDialog
  4. def test_LabelQLineEdit(qtbot):
  5. list_widget = QtWidgets.QListWidget()
  6. list_widget.addItems([
  7. 'cat',
  8. 'dog',
  9. 'person',
  10. ])
  11. widget = labelDialog.LabelQLineEdit()
  12. widget.setListWidget(list_widget)
  13. qtbot.addWidget(widget)
  14. # key press to navigate in label list
  15. item = widget.list_widget.findItems('cat', QtCore.Qt.MatchExactly)[0]
  16. widget.list_widget.setCurrentItem(item)
  17. assert widget.list_widget.currentItem().text() == 'cat'
  18. qtbot.keyPress(widget, QtCore.Qt.Key_Down)
  19. assert widget.list_widget.currentItem().text() == 'dog'
  20. # key press to enter label
  21. qtbot.keyPress(widget, QtCore.Qt.Key_P)
  22. qtbot.keyPress(widget, QtCore.Qt.Key_E)
  23. qtbot.keyPress(widget, QtCore.Qt.Key_R)
  24. qtbot.keyPress(widget, QtCore.Qt.Key_S)
  25. qtbot.keyPress(widget, QtCore.Qt.Key_O)
  26. qtbot.keyPress(widget, QtCore.Qt.Key_N)
  27. assert widget.text() == 'person'
  28. def test_LabelDialog_addLabelHistory(qtbot):
  29. labels = ['cat', 'dog', 'person']
  30. widget = labelDialog.LabelDialog(labels=labels, sort_labels=True)
  31. qtbot.addWidget(widget)
  32. widget.addLabelHistory('bicycle')
  33. assert widget.labelList.count() == 4
  34. widget.addLabelHistory('bicycle')
  35. assert widget.labelList.count() == 4
  36. item = widget.labelList.item(0)
  37. assert item.text() == 'bicycle'
  38. def test_LabelDialog_popUp(qtbot):
  39. labels = ['cat', 'dog', 'person']
  40. widget = labelDialog.LabelDialog(labels=labels, sort_labels=True)
  41. qtbot.addWidget(widget)
  42. # popUp(text='cat')
  43. def interact():
  44. qtbot.keyClick(widget.edit, QtCore.Qt.Key_P) # enter 'p' for 'person' # NOQA
  45. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  46. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  47. QtCore.QTimer.singleShot(500, interact)
  48. text = widget.popUp('cat')
  49. assert text == 'person'
  50. # popUp()
  51. def interact():
  52. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  53. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  54. QtCore.QTimer.singleShot(500, interact)
  55. text = widget.popUp()
  56. assert text == 'person'
  57. # popUp() + key_Up
  58. def interact():
  59. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Up) # 'person' -> 'dog' # NOQA
  60. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  61. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  62. QtCore.QTimer.singleShot(500, interact)
  63. text = widget.popUp()
  64. assert text == 'dog'