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