summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Chavez <chrischavez@gmx.us>2023-04-24 01:31:44 (GMT)
committerGitHub <noreply@github.com>2023-04-24 01:31:44 (GMT)
commitf0ed293f6aec1c2ed22725301b77d6ccedc2d486 (patch)
tree28f60161855b588a730da5114cfc5f1492e6dd0a
parentbd2dca035af88694e25fb060f984fbbcda82bed8 (diff)
downloadcpython-f0ed293f6aec1c2ed22725301b77d6ccedc2d486.zip
cpython-f0ed293f6aec1c2ed22725301b77d6ccedc2d486.tar.gz
cpython-f0ed293f6aec1c2ed22725301b77d6ccedc2d486.tar.bz2
gh-103685: Fix tkinter.Menu.index() for Tk 8.7 (#103686)
--------- Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
-rw-r--r--Lib/test/test_tkinter/test_widgets.py5
-rw-r--r--Lib/tkinter/__init__.py3
-rw-r--r--Misc/NEWS.d/next/Library/2023-04-24-00-34-23.gh-issue-103685.U14jBM.rst1
3 files changed, 7 insertions, 2 deletions
diff --git a/Lib/test/test_tkinter/test_widgets.py b/Lib/test/test_tkinter/test_widgets.py
index 64c9472..ba4ef49 100644
--- a/Lib/test/test_tkinter/test_widgets.py
+++ b/Lib/test/test_tkinter/test_widgets.py
@@ -1377,6 +1377,11 @@ class MenuTest(AbstractWidgetTest, unittest.TestCase):
def create(self, **kwargs):
return tkinter.Menu(self.root, **kwargs)
+ def test_indexcommand_none(self):
+ widget = self.create()
+ i = widget.index('none')
+ self.assertIsNone(i)
+
def test_configure_postcommand(self):
widget = self.create()
self.checkCommandParam(widget, 'postcommand')
diff --git a/Lib/tkinter/__init__.py b/Lib/tkinter/__init__.py
index 479daf0..bf0b3b9 100644
--- a/Lib/tkinter/__init__.py
+++ b/Lib/tkinter/__init__.py
@@ -3430,8 +3430,7 @@ class Menu(Widget):
def index(self, index):
"""Return the index of a menu item identified by INDEX."""
i = self.tk.call(self._w, 'index', index)
- if i == 'none': return None
- return self.tk.getint(i)
+ return None if i in ('', 'none') else self.tk.getint(i) # GH-103685.
def invoke(self, index):
"""Invoke a menu item identified by INDEX and execute
diff --git a/Misc/NEWS.d/next/Library/2023-04-24-00-34-23.gh-issue-103685.U14jBM.rst b/Misc/NEWS.d/next/Library/2023-04-24-00-34-23.gh-issue-103685.U14jBM.rst
new file mode 100644
index 0000000..31df047
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-04-24-00-34-23.gh-issue-103685.U14jBM.rst
@@ -0,0 +1 @@
+Prepare :meth:`tkinter.Menu.index` for Tk 8.7 so that it does not raise ``TclError: expected integer but got ""`` when it should return ``None``.