Skip to content

Commit 3457f42

Browse files
authored
bpo-31287: IDLE - do not alter tkinter.messagebox in configdialog tests. (#3220)
1 parent 7028e59 commit 3457f42

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

Lib/idlelib/configdialog.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
Notebook, Radiobutton, Scrollbar, Style)
1919
import tkinter.colorchooser as tkColorChooser
2020
import tkinter.font as tkFont
21-
import tkinter.messagebox as tkMessageBox
21+
from tkinter import messagebox
2222

2323
from idlelib.config import idleConf, ConfigChanges
2424
from idlelib.config_key import GetKeysDialog
@@ -1227,6 +1227,10 @@ def save_new(self, theme_name, theme):
12271227
value = theme[element]
12281228
idleConf.userCfg['highlight'].SetOption(theme_name, element, value)
12291229

1230+
def askyesno(self, *args, **kwargs):
1231+
# Make testing easier. Could change implementation.
1232+
messagebox.askyesno(*args, **kwargs)
1233+
12301234
def delete_custom(self):
12311235
"""Handle event to delete custom theme.
12321236
@@ -1251,7 +1255,7 @@ def delete_custom(self):
12511255
"""
12521256
theme_name = self.custom_name.get()
12531257
delmsg = 'Are you sure you wish to delete the theme %r ?'
1254-
if not tkMessageBox.askyesno(
1258+
if not self.askyesno(
12551259
'Delete Theme', delmsg % theme_name, parent=self):
12561260
return
12571261
self.cd.deactivate_current_config()
@@ -1669,6 +1673,10 @@ def save_new_key_set(keyset_name, keyset):
16691673
value = keyset[event]
16701674
idleConf.userCfg['keys'].SetOption(keyset_name, event, value)
16711675

1676+
def askyesno(self, *args, **kwargs):
1677+
# Make testing easier. Could change implementation.
1678+
messagebox.askyesno(*args, **kwargs)
1679+
16721680
def delete_custom_keys(self):
16731681
"""Handle event to delete a custom key set.
16741682
@@ -1678,7 +1686,7 @@ def delete_custom_keys(self):
16781686
"""
16791687
keyset_name = self.custom_name.get()
16801688
delmsg = 'Are you sure you wish to delete the key set %r ?'
1681-
if not tkMessageBox.askyesno(
1689+
if not self.askyesno(
16821690
'Delete Key Set', delmsg % keyset_name, parent=self):
16831691
return
16841692
self.cd.deactivate_current_config()

Lib/idlelib/idle_test/test_configdialog.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,7 @@ def test_delete_custom(self):
643643
eq = self.assertEqual
644644
d = self.page
645645
d.button_delete_custom.state(('!disabled',))
646-
yesno = configdialog.tkMessageBox.askyesno = Func()
646+
yesno = d.askyesno = Func()
647647
dialog.deactivate_current_config = Func()
648648
dialog.activate_config_changes = Func()
649649

@@ -678,7 +678,7 @@ def test_delete_custom(self):
678678
eq(d.set_theme_type.called, 1)
679679

680680
del dialog.activate_config_changes, dialog.deactivate_current_config
681-
del configdialog.tkMessageBox.askyesno
681+
del d.askyesno
682682

683683

684684
class KeysPageTest(unittest.TestCase):
@@ -1034,7 +1034,7 @@ def test_delete_custom_keys(self):
10341034
eq = self.assertEqual
10351035
d = self.page
10361036
d.button_delete_custom_keys.state(('!disabled',))
1037-
yesno = configdialog.tkMessageBox.askyesno = Func()
1037+
yesno = d.askyesno = Func()
10381038
dialog.deactivate_current_config = Func()
10391039
dialog.activate_config_changes = Func()
10401040

@@ -1069,7 +1069,7 @@ def test_delete_custom_keys(self):
10691069
eq(d.set_keys_type.called, 1)
10701070

10711071
del dialog.activate_config_changes, dialog.deactivate_current_config
1072-
del configdialog.tkMessageBox.askyesno
1072+
del d.askyesno
10731073

10741074

10751075
class GenPageTest(unittest.TestCase):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
IDLE - Do not modify tkinter.message in test_configdialog.

0 commit comments

Comments
 (0)