test_label_dialog.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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([
  8. 'cat',
  9. 'dog',
  10. 'person',
  11. ])
  12. widget = LabelQLineEdit()
  13. widget.setListWidget(list_widget)
  14. qtbot.addWidget(widget)
  15. # key press to navigate in label list
  16. item = widget.list_widget.findItems('cat', QtCore.Qt.MatchExactly)[0]
  17. widget.list_widget.setCurrentItem(item)
  18. assert widget.list_widget.currentItem().text() == 'cat'
  19. qtbot.keyPress(widget, QtCore.Qt.Key_Down)
  20. assert widget.list_widget.currentItem().text() == 'dog'
  21. # key press to enter label
  22. qtbot.keyPress(widget, QtCore.Qt.Key_P)
  23. qtbot.keyPress(widget, QtCore.Qt.Key_E)
  24. qtbot.keyPress(widget, QtCore.Qt.Key_R)
  25. qtbot.keyPress(widget, QtCore.Qt.Key_S)
  26. qtbot.keyPress(widget, QtCore.Qt.Key_O)
  27. qtbot.keyPress(widget, QtCore.Qt.Key_N)
  28. assert widget.text() == 'person'
  29. def test_LabelDialog_addLabelHistory(qtbot):
  30. labels = ['cat', 'dog', 'person']
  31. widget = LabelDialog(labels=labels, sort_labels=True)
  32. qtbot.addWidget(widget)
  33. widget.addLabelHistory('bicycle')
  34. assert widget.labelList.count() == 4
  35. widget.addLabelHistory('bicycle')
  36. assert widget.labelList.count() == 4
  37. item = widget.labelList.item(0)
  38. assert item.text() == 'bicycle'
  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 = widget.popUp('cat')
  50. assert label == 'person'
  51. assert flags == {}
  52. # popUp()
  53. def interact():
  54. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  55. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  56. QtCore.QTimer.singleShot(500, interact)
  57. label, flags = widget.popUp()
  58. assert label == 'person'
  59. assert flags == {}
  60. # popUp() + key_Up
  61. def interact():
  62. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Up) # 'person' -> 'dog' # NOQA
  63. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  64. qtbot.keyClick(widget.edit, QtCore.Qt.Key_Enter) # NOQA
  65. QtCore.QTimer.singleShot(500, interact)
  66. label, flags = widget.popUp()
  67. assert label == 'dog'
  68. assert flags == {}