| 
									
										
										
										
											2018-06-18 04:47:59 -04:00
										 |  |  | "Test multicall, coverage 33%." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from idlelib import multicall | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | from test.support import requires | 
					
						
							| 
									
										
										
										
											2025-01-26 04:42:08 -05:00
										 |  |  | from test.support.testcase import ExtraAssertions | 
					
						
							| 
									
										
										
										
											2018-06-18 04:47:59 -04:00
										 |  |  | from tkinter import Tk, Text | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-26 04:42:08 -05:00
										 |  |  | class MultiCallTest(unittest.TestCase, ExtraAssertions): | 
					
						
							| 
									
										
										
										
											2018-06-18 04:47:59 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     def setUpClass(cls): | 
					
						
							|  |  |  |         requires('gui') | 
					
						
							|  |  |  |         cls.root = Tk() | 
					
						
							|  |  |  |         cls.root.withdraw() | 
					
						
							|  |  |  |         cls.mc = multicall.MultiCallCreator(Text) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     def tearDownClass(cls): | 
					
						
							|  |  |  |         del cls.mc | 
					
						
							|  |  |  |         cls.root.update_idletasks() | 
					
						
							|  |  |  | ##        for id in cls.root.tk.call('after', 'info'): | 
					
						
							|  |  |  | ##            cls.root.after_cancel(id)  # Need for EditorWindow. | 
					
						
							|  |  |  |         cls.root.destroy() | 
					
						
							|  |  |  |         del cls.root | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_creator(self): | 
					
						
							|  |  |  |         mc = self.mc | 
					
						
							|  |  |  |         self.assertIs(multicall._multicall_dict[Text], mc) | 
					
						
							| 
									
										
										
										
											2025-01-26 04:42:08 -05:00
										 |  |  |         self.assertIsSubclass(mc, Text) | 
					
						
							| 
									
										
										
										
											2018-06-18 04:47:59 -04:00
										 |  |  |         mc2 = multicall.MultiCallCreator(Text) | 
					
						
							|  |  |  |         self.assertIs(mc, mc2) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_init(self): | 
					
						
							|  |  |  |         mctext = self.mc(self.root) | 
					
						
							|  |  |  |         self.assertIsInstance(mctext._MultiCall__binders, list) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-04 21:33:34 -04:00
										 |  |  |     def test_yview(self): | 
					
						
							|  |  |  |         # Added for tree.wheel_event | 
					
						
							| 
									
										
										
										
											2021-10-07 01:13:48 +02:00
										 |  |  |         # (it depends on yview to not be overridden) | 
					
						
							| 
									
										
										
										
											2019-09-04 21:33:34 -04:00
										 |  |  |         mc = self.mc | 
					
						
							|  |  |  |         self.assertIs(mc.yview, Text.yview) | 
					
						
							|  |  |  |         mctext = self.mc(self.root) | 
					
						
							|  |  |  |         self.assertIs(mctext.yview.__func__, Text.yview) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-18 04:47:59 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main(verbosity=2) |