mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +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