mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	gh-120220: Deprecate legacy methods for tracing variables in Tkinter (GH-120223)
They do not work with Tcl 9.0. Use new methods added in Python 3.6.
This commit is contained in:
		
							parent
							
								
									814ca116d5
								
							
						
					
					
						commit
						c46635aa5a
					
				
					 4 changed files with 58 additions and 21 deletions
				
			
		|  | @ -122,9 +122,14 @@ def read_tracer(*args): | |||
|             trace.append(('read',) + args) | ||||
|         def write_tracer(*args): | ||||
|             trace.append(('write',) + args) | ||||
|         cb1 = v.trace_variable('r', read_tracer) | ||||
|         cb2 = v.trace_variable('wu', write_tracer) | ||||
|         self.assertEqual(sorted(v.trace_vinfo()), [('r', cb1), ('wu', cb2)]) | ||||
|         with self.assertWarns(DeprecationWarning) as cm: | ||||
|             cb1 = v.trace_variable('r', read_tracer) | ||||
|         self.assertEqual(cm.filename, __file__) | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             cb2 = v.trace_variable('wu', write_tracer) | ||||
|         with self.assertWarns(DeprecationWarning) as cm: | ||||
|             self.assertEqual(sorted(v.trace_vinfo()), [('r', cb1), ('wu', cb2)]) | ||||
|         self.assertEqual(cm.filename, __file__) | ||||
|         self.assertEqual(trace, []) | ||||
| 
 | ||||
|         v.set('spam') | ||||
|  | @ -135,20 +140,30 @@ def write_tracer(*args): | |||
|         self.assertEqual(trace, [('read', vname, '', 'r')]) | ||||
| 
 | ||||
|         trace = [] | ||||
|         info = sorted(v.trace_vinfo()) | ||||
|         v.trace_vdelete('w', cb1)  # Wrong mode | ||||
|         self.assertEqual(sorted(v.trace_vinfo()), info) | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             info = sorted(v.trace_vinfo()) | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             v.trace_vdelete('w', cb1)  # Wrong mode | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             self.assertEqual(sorted(v.trace_vinfo()), info) | ||||
|         with self.assertRaises(TclError): | ||||
|             v.trace_vdelete('r', 'spam')  # Wrong command name | ||||
|         self.assertEqual(sorted(v.trace_vinfo()), info) | ||||
|         v.trace_vdelete('r', (cb1, 43)) # Wrong arguments | ||||
|         self.assertEqual(sorted(v.trace_vinfo()), info) | ||||
|             with self.assertWarns(DeprecationWarning): | ||||
|                 v.trace_vdelete('r', 'spam')  # Wrong command name | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             self.assertEqual(sorted(v.trace_vinfo()), info) | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             v.trace_vdelete('r', (cb1, 43)) # Wrong arguments | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             self.assertEqual(sorted(v.trace_vinfo()), info) | ||||
|         v.get() | ||||
|         self.assertEqual(trace, [('read', vname, '', 'r')]) | ||||
| 
 | ||||
|         trace = [] | ||||
|         v.trace_vdelete('r', cb1) | ||||
|         self.assertEqual(v.trace_vinfo(), [('wu', cb2)]) | ||||
|         with self.assertWarns(DeprecationWarning) as cm: | ||||
|             v.trace_vdelete('r', cb1) | ||||
|         self.assertEqual(cm.filename, __file__) | ||||
|         with self.assertWarns(DeprecationWarning): | ||||
|             self.assertEqual(v.trace_vinfo(), [('wu', cb2)]) | ||||
|         v.get() | ||||
|         self.assertEqual(trace, []) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka