diff options
author | Christopher Chavez <chrischavez@gmx.us> | 2023-04-24 01:31:44 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-24 01:31:44 (GMT) |
commit | f0ed293f6aec1c2ed22725301b77d6ccedc2d486 (patch) | |
tree | 28f60161855b588a730da5114cfc5f1492e6dd0a | |
parent | bd2dca035af88694e25fb060f984fbbcda82bed8 (diff) | |
download | cpython-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.py | 5 | ||||
-rw-r--r-- | Lib/tkinter/__init__.py | 3 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2023-04-24-00-34-23.gh-issue-103685.U14jBM.rst | 1 |
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``. |