MCPcopy Index your code
hub / github.com/python/cpython / test_trace

Method test_trace

Lib/test/test_tkinter/test_variables.py:182–229  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

180 self.assertEqual(trace, [('write', vname, '', 'u')])
181
182 def test_trace(self):
183 v = Variable(self.root)
184 vname = str(v)
185 trace = []
186 def read_tracer(*args):
187 trace.append(('read',) + args)
188 def write_tracer(*args):
189 trace.append(('write',) + args)
190 tr1 = v.trace_add('read', read_tracer)
191 tr2 = v.trace_add(['write', 'unset'], write_tracer)
192 self.assertEqual(sorted(v.trace_info()), [
193 (('read',), tr1),
194 (('write', 'unset'), tr2)])
195 self.assertEqual(trace, [])
196
197 v.set('spam')
198 self.assertEqual(trace, [('write', vname, '', 'write')])
199
200 trace = []
201 v.get()
202 self.assertEqual(trace, [('read', vname, '', 'read')])
203
204 trace = []
205 info = sorted(v.trace_info())
206 v.trace_remove('write', tr1) # Wrong mode
207 self.assertEqual(sorted(v.trace_info()), info)
208 with self.assertRaises(TclError):
209 v.trace_remove('read', 'spam') # Wrong command name
210 self.assertEqual(sorted(v.trace_info()), info)
211 v.get()
212 self.assertEqual(trace, [('read', vname, '', 'read')])
213
214 trace = []
215 v.trace_remove('read', tr1)
216 self.assertEqual(v.trace_info(), [(('write', 'unset'), tr2)])
217 v.get()
218 self.assertEqual(trace, [])
219
220 trace = []
221 del write_tracer
222 gc.collect()
223 v.set('eggs')
224 self.assertEqual(trace, [('write', vname, '', 'write')])
225
226 trace = []
227 del v
228 gc.collect()
229 self.assertEqual(trace, [('write', vname, '', 'unset')])
230
231
232class TestStringVar(TestBase):

Callers

nothing calls this directly

Calls 10

trace_addMethod · 0.95
trace_infoMethod · 0.95
setMethod · 0.95
getMethod · 0.95
trace_removeMethod · 0.95
VariableClass · 0.90
strFunction · 0.85
assertEqualMethod · 0.45
assertRaisesMethod · 0.45
collectMethod · 0.45

Tested by

no test coverage detected