| 
									
										
										
										
											2018-06-19 19:12:52 -04:00
										 |  |  | "Test tree. coverage 56%." | 
					
						
							| 
									
										
										
										
											2016-06-10 18:19:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | from idlelib import tree | 
					
						
							| 
									
										
										
										
											2018-06-19 19:12:52 -04:00
										 |  |  | import unittest | 
					
						
							| 
									
										
										
										
											2016-06-10 18:19:21 -04:00
										 |  |  | from test.support import requires | 
					
						
							|  |  |  | requires('gui') | 
					
						
							| 
									
										
										
										
											2019-09-04 21:33:34 -04:00
										 |  |  | from tkinter import Tk, EventType, SCROLL | 
					
						
							| 
									
										
										
										
											2016-06-10 18:19:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-04 21:33:34 -04:00
										 |  |  | 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") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-10 18:19:21 -04:00
										 |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main(verbosity=2) |