@@ -232,6 +232,46 @@ def callback():
232232 with self .assertRaises (tkinter .TclError ):
233233 root .tk .call ('after' , 'info' , idle1 )
234234
235+ def test_after_info (self ):
236+ root = self .root
237+
238+ # No events.
239+ self .assertEqual (root .after_info (), ())
240+
241+ # Add timer.
242+ timer = root .after (1 , lambda : 'break' )
243+
244+ # With no parameter, it returns a tuple of the event handler ids.
245+ self .assertEqual (root .after_info (), (timer , ))
246+ root .after_cancel (timer )
247+
248+ timer1 = root .after (5000 , lambda : 'break' )
249+ timer2 = root .after (5000 , lambda : 'break' )
250+ idle1 = root .after_idle (lambda : 'break' )
251+ # Only contains new events and not 'timer'.
252+ self .assertEqual (root .after_info (), (idle1 , timer2 , timer1 ))
253+
254+ # With a parameter returns a tuple of (script, type).
255+ timer1_info = root .after_info (timer1 )
256+ self .assertEqual (len (timer1_info ), 2 )
257+ self .assertEqual (timer1_info [1 ], 'timer' )
258+ idle1_info = root .after_info (idle1 )
259+ self .assertEqual (len (idle1_info ), 2 )
260+ self .assertEqual (idle1_info [1 ], 'idle' )
261+
262+ root .after_cancel (timer1 )
263+ with self .assertRaises (tkinter .TclError ):
264+ root .after_info (timer1 )
265+ root .after_cancel (timer2 )
266+ with self .assertRaises (tkinter .TclError ):
267+ root .after_info (timer2 )
268+ root .after_cancel (idle1 )
269+ with self .assertRaises (tkinter .TclError ):
270+ root .after_info (idle1 )
271+
272+ # No events.
273+ self .assertEqual (root .after_info (), ())
274+
235275 def test_clipboard (self ):
236276 root = self .root
237277 root .clipboard_clear ()
0 commit comments