@@ -276,9 +276,30 @@ def test_menu(self):
276
276
self .assertRaises (tkinter .TclError , optmenu ['menu' ].invoke , - 1 )
277
277
self .assertEqual (optmenu ._variable .get (), items [0 ])
278
278
279
+ optmenu .destroy ()
280
+
281
+ # specifying a callback
282
+ success = []
283
+ def cb_test (item ):
284
+ self .assertEqual (item , items [1 ])
285
+ success .append (True )
286
+ optmenu = ttk .OptionMenu (self .root , self .textvar , 'a' , command = cb_test ,
287
+ * items )
288
+ optmenu ['menu' ].invoke (1 )
289
+ if not success :
290
+ self .fail ("Menu callback not invoked" )
291
+
292
+ optmenu .destroy ()
293
+
294
+ def test_unique_radiobuttons (self ):
279
295
# check that radiobuttons are unique across instances (bpo25684)
296
+ items = ('a' , 'b' , 'c' )
297
+ default = 'a'
298
+ optmenu = ttk .OptionMenu (self .root , self .textvar , default , * items )
280
299
textvar2 = tkinter .StringVar (self .root )
281
300
optmenu2 = ttk .OptionMenu (self .root , textvar2 , default , * items )
301
+ optmenu .pack ()
302
+ optmenu .wait_visibility ()
282
303
optmenu2 .pack ()
283
304
optmenu2 .wait_visibility ()
284
305
optmenu ['menu' ].invoke (1 )
@@ -296,19 +317,6 @@ def test_menu(self):
296
317
del textvar2 , optmenu_radiobutton_name , optmenu2_radiobutton_name
297
318
optmenu2 .destroy ()
298
319
299
- # specifying a callback
300
- success = []
301
- def cb_test (item ):
302
- self .assertEqual (item , items [1 ])
303
- success .append (True )
304
- optmenu = ttk .OptionMenu (self .root , self .textvar , 'a' , command = cb_test ,
305
- * items )
306
- optmenu ['menu' ].invoke (1 )
307
- if not success :
308
- self .fail ("Menu callback not invoked" )
309
-
310
- optmenu .destroy ()
311
-
312
320
313
321
tests_gui = (LabeledScaleTest , OptionMenuTest )
314
322
0 commit comments