test_DirectOptionMenu.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from direct.gui.DirectOptionMenu import DirectOptionMenu
  2. import pytest
  3. def test_menu_destroy():
  4. menu = DirectOptionMenu(items=["item1", "item2"])
  5. menu.destroy()
  6. def test_showPopupMenu():
  7. menu = DirectOptionMenu()
  8. # Showing an option menu without items will raise an exception
  9. with pytest.raises(Exception):
  10. menu.showPopupMenu()
  11. menu["items"] = ["item1", "item2"]
  12. menu.showPopupMenu()
  13. assert not menu.popupMenu.isHidden()
  14. assert not menu.cancelFrame.isHidden()
  15. menu.hidePopupMenu()
  16. assert menu.popupMenu.isHidden()
  17. assert menu.cancelFrame.isHidden()
  18. def test_index():
  19. menu = DirectOptionMenu(items=["item1", "item2"])
  20. assert menu.index("item1") == 0
  21. assert menu.index("item2") == 1
  22. def test_set_get():
  23. menu = DirectOptionMenu(items=["item1", "item2"])
  24. menu.set(1, False)
  25. assert menu.selectedIndex == 1
  26. assert menu.get() == "item2"
  27. assert menu["text"] == "item2"
  28. def test_initialitem():
  29. # initialitem by string
  30. menuByStr = DirectOptionMenu(items=["item1", "item2"], initialitem="item2")
  31. assert menuByStr.get() == "item2"
  32. assert menuByStr["text"] == "item2"
  33. # initialitem by Index
  34. menuByIdx = DirectOptionMenu(items=["item1", "item2"], initialitem=1)
  35. assert menuByIdx.get() == "item2"
  36. assert menuByIdx["text"] == "item2"
  37. def test_item_text_scale():
  38. highlightScale = (2, 2)
  39. unhighlightScale = (0.5, 0.5)
  40. menu = DirectOptionMenu(
  41. items=["item1", "item2"],
  42. item_text_scale=unhighlightScale,
  43. highlightScale=highlightScale)
  44. # initial scale
  45. item = menu.component("item0")
  46. item_text_scale = 0.8
  47. assert item["text_scale"] == unhighlightScale
  48. # highlight scale
  49. menu._highlightItem(item, 0)
  50. assert item["text_scale"] == highlightScale
  51. # back to initial scale
  52. menu._unhighlightItem(item, item["frameColor"])
  53. assert item["text_scale"] == unhighlightScale