From 1c8759c2c07869adf96e12b5ba1c86d16f5253e4 Mon Sep 17 00:00:00 2001 From: "E. Paine" <63801254+E-Paine@users.noreply.github.com> Date: Mon, 3 Aug 2020 13:41:25 +0100 Subject: [PATCH 1/8] Allow scale value to not be rounded --- Lib/tkinter/test/test_tkinter/test_widgets.py | 2 +- Lib/tkinter/test/widget_tests.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index 16e9d93944c205..05ef02e1c69035 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -936,7 +936,7 @@ def test_digits(self): def test_from(self): widget = self.create() - self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round) + self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round, allow_not_rounded=True) def test_label(self): widget = self.create() diff --git a/Lib/tkinter/test/widget_tests.py b/Lib/tkinter/test/widget_tests.py index b42ff52178f29e..bd54617d8b7911 100644 --- a/Lib/tkinter/test/widget_tests.py +++ b/Lib/tkinter/test/widget_tests.py @@ -101,9 +101,15 @@ def checkIntegerParam(self, widget, name, *values, **kwargs): self.checkInvalidParam(widget, name, 3.2, errmsg='expected integer but got "3.2"') - def checkFloatParam(self, widget, name, *values, conv=float, **kwargs): + def checkFloatParam(self, widget, name, *values, conv=float, allow_not_rounded=False, **kwargs): for value in values: - self.checkParam(widget, name, value, conv=conv, **kwargs) + try: + self.checkParam(widget, name, value, conv=conv, **kwargs) + except AssertionError: + if allow_not_rounded: + self.checkParam(widget, name, value, conv=lambda val: val, **kwargs) + else: + raise self.checkInvalidParam(widget, name, '', errmsg='expected floating-point number but got ""') self.checkInvalidParam(widget, name, 'spam', From fc07de802f399c89d0fe89d52aff7cb8b8f36fe1 Mon Sep 17 00:00:00 2001 From: "E. Paine" <63801254+E-Paine@users.noreply.github.com> Date: Mon, 3 Aug 2020 14:40:46 +0100 Subject: [PATCH 2/8] Reverted 'allow_not_rounded' changes and action Serhiy's recommendation --- Lib/tkinter/test/test_tkinter/test_widgets.py | 3 ++- Lib/tkinter/test/widget_tests.py | 10 ++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index 05ef02e1c69035..7f95afdf05e5a8 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -936,7 +936,8 @@ def test_digits(self): def test_from(self): widget = self.create() - self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round, allow_not_rounded=True) + # A change in Tk 8.6.10 means `from` is not rounded (bpo-41306) + self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round if get_tk_patchlevel() < (8, 6, 10) else noconv) def test_label(self): widget = self.create() diff --git a/Lib/tkinter/test/widget_tests.py b/Lib/tkinter/test/widget_tests.py index bd54617d8b7911..b42ff52178f29e 100644 --- a/Lib/tkinter/test/widget_tests.py +++ b/Lib/tkinter/test/widget_tests.py @@ -101,15 +101,9 @@ def checkIntegerParam(self, widget, name, *values, **kwargs): self.checkInvalidParam(widget, name, 3.2, errmsg='expected integer but got "3.2"') - def checkFloatParam(self, widget, name, *values, conv=float, allow_not_rounded=False, **kwargs): + def checkFloatParam(self, widget, name, *values, conv=float, **kwargs): for value in values: - try: - self.checkParam(widget, name, value, conv=conv, **kwargs) - except AssertionError: - if allow_not_rounded: - self.checkParam(widget, name, value, conv=lambda val: val, **kwargs) - else: - raise + self.checkParam(widget, name, value, conv=conv, **kwargs) self.checkInvalidParam(widget, name, '', errmsg='expected floating-point number but got ""') self.checkInvalidParam(widget, name, 'spam', From e184ad8dc6fef878d6cceac0fae4cf5fade0e5ce Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2020 13:44:38 +0000 Subject: [PATCH 3/8] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20blu?= =?UTF-8?q?rb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst diff --git a/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst b/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst new file mode 100644 index 00000000000000..252581e18a882e --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst @@ -0,0 +1 @@ +Fixed test_tk.test_widgets.ScaleTest failure on Tk 8.6.10 \ No newline at end of file From bdd3cb5ed731623a121f23339948e76a5ee46d7e Mon Sep 17 00:00:00 2001 From: E-Paine <63801254+E-Paine@users.noreply.github.com> Date: Mon, 3 Aug 2020 14:47:18 +0100 Subject: [PATCH 4/8] Put "conv" kwarg on new line --- Lib/tkinter/test/test_tkinter/test_widgets.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index 7f95afdf05e5a8..3c0e253d07f21e 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -937,7 +937,8 @@ def test_digits(self): def test_from(self): widget = self.create() # A change in Tk 8.6.10 means `from` is not rounded (bpo-41306) - self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round if get_tk_patchlevel() < (8, 6, 10) else noconv) + self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, + conv=float_round if get_tk_patchlevel() < (8, 6, 10) else noconv) def test_label(self): widget = self.create() From 8b8060e9daa33eb65d156d04c88390c9c635f2be Mon Sep 17 00:00:00 2001 From: E-Paine <63801254+E-Paine@users.noreply.github.com> Date: Sat, 26 Sep 2020 09:05:28 +0100 Subject: [PATCH 5/8] Use @terryjreedy's conv kwarg suggestion Co-authored-by: Terry Jan Reedy --- Lib/tkinter/test/test_tkinter/test_widgets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index 2fc81e11566ecc..1a0c0bf512e147 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -941,8 +941,8 @@ def test_digits(self): def test_from(self): widget = self.create() # A change in Tk 8.6.10 means `from` is not rounded (bpo-41306) - self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, - conv=float_round if get_tk_patchlevel() < (8, 6, 10) else noconv) + conv = float_round if get_tk_patchlevel() < (8, 6, 10) else noconv + self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=conv) def test_label(self): widget = self.create() From 3f9147a82bd65ae953017da1a4e27ed67d55b6f9 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Thu, 8 Oct 2020 14:04:15 +0100 Subject: [PATCH 6/8] Update Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst --- Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst b/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst index 252581e18a882e..5e9ba2d8a27417 100644 --- a/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst +++ b/Misc/NEWS.d/next/Tests/2020-08-03-13-44-37.bpo-41306.VDoWXI.rst @@ -1 +1 @@ -Fixed test_tk.test_widgets.ScaleTest failure on Tk 8.6.10 \ No newline at end of file +Fixed a failure in ``test_tk.test_widgets.ScaleTest`` happening when executing the test with Tk 8.6.10. From 42ec16eba2d200480e2e71baf8906a50f65c785b Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Thu, 8 Oct 2020 14:08:26 +0100 Subject: [PATCH 7/8] Update Lib/tkinter/test/test_tkinter/test_widgets.py --- Lib/tkinter/test/test_tkinter/test_widgets.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index 1a0c0bf512e147..a74900433cd30f 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -940,7 +940,6 @@ def test_digits(self): def test_from(self): widget = self.create() - # A change in Tk 8.6.10 means `from` is not rounded (bpo-41306) conv = float_round if get_tk_patchlevel() < (8, 6, 10) else noconv self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=conv) From e3403c0c7d5cc304a404e8f133f72c57549b6269 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Date: Thu, 8 Oct 2020 14:08:53 +0100 Subject: [PATCH 8/8] Update Lib/tkinter/test/test_tkinter/test_widgets.py --- Lib/tkinter/test/test_tkinter/test_widgets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index a74900433cd30f..b6f792d6c2cf85 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -940,7 +940,7 @@ def test_digits(self): def test_from(self): widget = self.create() - conv = float_round if get_tk_patchlevel() < (8, 6, 10) else noconv + conv = False if get_tk_patchlevel() >= (8, 6, 10) else float_round self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=conv) def test_label(self):