test_label_dialog.py 2.9 KB

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