| 
									
										
										
										
											2013-07-13 02:34:43 -04:00
										 |  |  | '''Mock classes that imitate idlelib modules or classes.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Attributes and methods will be added as needed for tests. | 
					
						
							|  |  |  | '''
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from idlelib.idle_test.mock_tk import Text | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  | class Func: | 
					
						
							|  |  |  |     '''Mock function captures args and returns result set by test.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-05 03:38:34 -04:00
										 |  |  |     Attributes: | 
					
						
							|  |  |  |     self.called - records call even if no args, kwds passed. | 
					
						
							|  |  |  |     self.result - set by init, returned by call. | 
					
						
							|  |  |  |     self.args - captures positional arguments. | 
					
						
							|  |  |  |     self.kwds - captures keyword arguments. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  |     Most common use will probably be to mock methods. | 
					
						
							| 
									
										
										
										
											2014-06-05 03:38:34 -04:00
										 |  |  |     Mock_tk.Var and Mbox_func are special variants of this. | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  |     '''
 | 
					
						
							|  |  |  |     def __init__(self, result=None): | 
					
						
							| 
									
										
										
										
											2014-06-05 03:38:34 -04:00
										 |  |  |         self.called = False | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  |         self.result = result | 
					
						
							|  |  |  |         self.args = None | 
					
						
							|  |  |  |         self.kwds = None | 
					
						
							|  |  |  |     def __call__(self, *args, **kwds): | 
					
						
							| 
									
										
										
										
											2014-06-05 03:38:34 -04:00
										 |  |  |         self.called = True | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  |         self.args = args | 
					
						
							|  |  |  |         self.kwds = kwds | 
					
						
							| 
									
										
										
										
											2014-07-11 00:16:00 -04:00
										 |  |  |         if isinstance(self.result, BaseException): | 
					
						
							|  |  |  |             raise self.result | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return self.result | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-13 02:34:43 -04:00
										 |  |  | class Editor: | 
					
						
							|  |  |  |     '''Minimally imitate EditorWindow.EditorWindow class.
 | 
					
						
							|  |  |  |     '''
 | 
					
						
							|  |  |  |     def __init__(self, flist=None, filename=None, key=None, root=None): | 
					
						
							|  |  |  |         self.text = Text() | 
					
						
							|  |  |  |         self.undo = UndoDelegator() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_selection_indices(self): | 
					
						
							|  |  |  |         first = self.text.index('1.0') | 
					
						
							|  |  |  |         last = self.text.index('end') | 
					
						
							|  |  |  |         return first, last | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-03 20:54:21 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-13 02:34:43 -04:00
										 |  |  | class UndoDelegator: | 
					
						
							|  |  |  |     '''Minimally imitate UndoDelegator,UndoDelegator class.
 | 
					
						
							|  |  |  |     '''
 | 
					
						
							|  |  |  |     # A real undo block is only needed for user interaction. | 
					
						
							|  |  |  |     def undo_block_start(*args): | 
					
						
							|  |  |  |         pass | 
					
						
							|  |  |  |     def undo_block_stop(*args): | 
					
						
							|  |  |  |         pass |