mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	 2cd9025858
			
		
	
	
		2cd9025858
		
	
	
	
	
		
			
			Modify the wheel event handler so it can also be used for module, path, and stack browsers. Patch by George Zhang.
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| "Test tree. coverage 56%."
 | |
| 
 | |
| from idlelib import tree
 | |
| import unittest
 | |
| from test.support import requires
 | |
| requires('gui')
 | |
| from tkinter import Tk, EventType, SCROLL
 | |
| 
 | |
| 
 | |
| class TreeTest(unittest.TestCase):
 | |
| 
 | |
|     @classmethod
 | |
|     def setUpClass(cls):
 | |
|         cls.root = Tk()
 | |
|         cls.root.withdraw()
 | |
| 
 | |
|     @classmethod
 | |
|     def tearDownClass(cls):
 | |
|         cls.root.destroy()
 | |
|         del cls.root
 | |
| 
 | |
|     def test_init(self):
 | |
|         # Start with code slightly adapted from htest.
 | |
|         sc = tree.ScrolledCanvas(
 | |
|             self.root, bg="white", highlightthickness=0, takefocus=1)
 | |
|         sc.frame.pack(expand=1, fill="both", side='left')
 | |
|         item = tree.FileTreeItem(tree.ICONDIR)
 | |
|         node = tree.TreeNode(sc.canvas, None, item)
 | |
|         node.expand()
 | |
| 
 | |
| 
 | |
| class TestScrollEvent(unittest.TestCase):
 | |
| 
 | |
|     def test_wheel_event(self):
 | |
|         # Fake widget class containing `yview` only.
 | |
|         class _Widget:
 | |
|             def __init__(widget, *expected):
 | |
|                 widget.expected = expected
 | |
|             def yview(widget, *args):
 | |
|                 self.assertTupleEqual(widget.expected, args)
 | |
|         # Fake event class
 | |
|         class _Event:
 | |
|             pass
 | |
|         #        (type, delta, num, amount)
 | |
|         tests = ((EventType.MouseWheel, 120, -1, -5),
 | |
|                  (EventType.MouseWheel, -120, -1, 5),
 | |
|                  (EventType.ButtonPress, -1, 4, -5),
 | |
|                  (EventType.ButtonPress, -1, 5, 5))
 | |
| 
 | |
|         event = _Event()
 | |
|         for ty, delta, num, amount in tests:
 | |
|             event.type = ty
 | |
|             event.delta = delta
 | |
|             event.num = num
 | |
|             res = tree.wheel_event(event, _Widget(SCROLL, amount, "units"))
 | |
|             self.assertEqual(res, "break")
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     unittest.main(verbosity=2)
 |