test_label_dialog.py 2.8 KB

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