From 240761693d3b266b1383009579420602a023620b Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Wed, 19 Oct 2022 12:30:14 +0300 Subject: [PATCH] gh-97928: Fix handling options starting with "-" in tkinter.Text.count() (GH-98436) Previously they were silently ignored. Now they are errors. (cherry picked from commit e4ec8de6fa6f0a07e64f6a3e3f894926b4b0652d) Co-authored-by: Serhiy Storchaka --- Lib/tkinter/__init__.py | 2 +- Lib/tkinter/test/test_tkinter/test_text.py | 4 +--- .../Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst diff --git a/Lib/tkinter/__init__.py b/Lib/tkinter/__init__.py index c7176e69e529d8..d42d9a013dd6f5 100644 --- a/Lib/tkinter/__init__.py +++ b/Lib/tkinter/__init__.py @@ -3621,7 +3621,7 @@ def count(self, index1, index2, *args): # new in Tk 8.5 "lines", "xpixels" and "ypixels". There is an additional possible option "update", which if given then all subsequent options ensure that any possible out of date information is recalculated.""" - args = ['-%s' % arg for arg in args if not arg.startswith('-')] + args = ['-%s' % arg for arg in args] args += [index1, index2] res = self.tk.call(self._w, 'count', *args) or None if res is not None and len(args) <= 3: diff --git a/Lib/tkinter/test/test_tkinter/test_text.py b/Lib/tkinter/test/test_tkinter/test_text.py index f0b101b5803b59..ea557586c7708b 100644 --- a/Lib/tkinter/test/test_tkinter/test_text.py +++ b/Lib/tkinter/test/test_tkinter/test_text.py @@ -76,9 +76,7 @@ def test_count(self): self.assertEqual(text.count('1.0', 'end'), (124,) # 'indices' by default if self.wantobjects else ('124',)) self.assertRaises(tkinter.TclError, text.count, '1.0', 'end', 'spam') - # '-lines' is ignored, 'indices' is used by default - self.assertEqual(text.count('1.0', 'end', '-lines'), (124,) - if self.wantobjects else ('124',)) + self.assertRaises(tkinter.TclError, text.count, '1.0', 'end', '-lines') self.assertIsInstance(text.count('1.3', '1.5', 'ypixels'), tuple) self.assertIsInstance(text.count('1.3', '1.5', 'update', 'ypixels'), int diff --git a/Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst b/Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst new file mode 100644 index 00000000000000..cf33db7548f69f --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-10-19-09-29-12.gh-issue-97928.xj3im7.rst @@ -0,0 +1,2 @@ +:meth:`tkinter.Text.count` raises now an exception for options starting with +"-" instead of silently ignoring them.