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>
This commit is contained in:
Christopher Chavez 2023-04-23 20:31:44 -05:00 committed by GitHub
parent bd2dca035a
commit f0ed293f6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 2 deletions

View File

@ -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')

View File

@ -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

View File

@ -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``.