test_modifierbuttons.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from panda3d.core import ModifierButtons
  2. def test_modifierbuttons_empty():
  3. # Tests the initial state of a ModifierButtons object.
  4. btns = ModifierButtons()
  5. assert btns == ModifierButtons(btns)
  6. assert btns != ModifierButtons()
  7. assert btns.matches(ModifierButtons())
  8. assert not btns.is_down("alt")
  9. assert not btns.is_any_down()
  10. assert not btns.has_button("alt")
  11. assert btns.get_prefix() == ""
  12. assert btns.get_num_buttons() == 0
  13. assert len(btns.buttons) == 0
  14. def test_modifierbuttons_cow():
  15. # Tests the copy-on-write mechanism of the button list.
  16. btns1 = ModifierButtons()
  17. btns1.add_button("space")
  18. # Modifying original should not affect copy
  19. btns2 = ModifierButtons(btns1)
  20. assert tuple(btns2.buttons) == tuple(btns1.buttons)
  21. btns1.add_button("enter")
  22. assert tuple(btns1.buttons) == ("space", "enter")
  23. assert tuple(btns2.buttons) == ("space",)
  24. # Modifying copy should not affect original
  25. btns3 = ModifierButtons(btns2)
  26. assert tuple(btns3.buttons) == tuple(btns2.buttons)
  27. btns3.add_button("escape")
  28. assert tuple(btns2.buttons) == ("space",)
  29. assert tuple(btns3.buttons) == ("space", "escape")