test_tree.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. "Test tree. coverage 56%."
  2. from idlelib import tree
  3. import unittest
  4. from test.support import requires
  5. requires('gui')
  6. from tkinter import Tk, EventType, SCROLL
  7. class TreeTest(unittest.TestCase):
  8. @classmethod
  9. def setUpClass(cls):
  10. cls.root = Tk()
  11. cls.root.withdraw()
  12. @classmethod
  13. def tearDownClass(cls):
  14. cls.root.destroy()
  15. del cls.root
  16. def test_init(self):
  17. # Start with code slightly adapted from htest.
  18. sc = tree.ScrolledCanvas(
  19. self.root, bg="white", highlightthickness=0, takefocus=1)
  20. sc.frame.pack(expand=1, fill="both", side='left')
  21. item = tree.FileTreeItem(tree.ICONDIR)
  22. node = tree.TreeNode(sc.canvas, None, item)
  23. node.expand()
  24. class TestScrollEvent(unittest.TestCase):
  25. def test_wheel_event(self):
  26. # Fake widget class containing `yview` only.
  27. class _Widget:
  28. def __init__(widget, *expected):
  29. widget.expected = expected
  30. def yview(widget, *args):
  31. self.assertTupleEqual(widget.expected, args)
  32. # Fake event class
  33. class _Event:
  34. pass
  35. # (type, delta, num, amount)
  36. tests = ((EventType.MouseWheel, 120, -1, -5),
  37. (EventType.MouseWheel, -120, -1, 5),
  38. (EventType.ButtonPress, -1, 4, -5),
  39. (EventType.ButtonPress, -1, 5, 5))
  40. event = _Event()
  41. for ty, delta, num, amount in tests:
  42. event.type = ty
  43. event.delta = delta
  44. event.num = num
  45. res = tree.wheel_event(event, _Widget(SCROLL, amount, "units"))
  46. self.assertEqual(res, "break")
  47. if __name__ == '__main__':
  48. unittest.main(verbosity=2)