]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-45496: Allow flexibility in winfo_rgb tests (GH-30185)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 26 Dec 2021 12:27:29 +0000 (04:27 -0800)
committerGitHub <noreply@github.com>
Sun, 26 Dec 2021 12:27:29 +0000 (04:27 -0800)
(cherry picked from commit 2e3e0d23adca8d83722d939d6abd1e467d7578f7)

Co-authored-by: E-Paine <63801254+E-Paine@users.noreply.github.com>
Lib/tkinter/test/test_tkinter/test_misc.py

index 554ae74d6b4153f2eca9e983f5ae485fa4ff88d8..43ffd46bf0ba0686e73fb5b80b6c0c5769ee7699 100644 (file)
@@ -193,6 +193,13 @@ class MiscTest(AbstractTkTest, unittest.TestCase):
             root.clipboard_get()
 
     def test_winfo_rgb(self):
+
+        def assertApprox(col1, col2):
+            # A small amount of flexibility is required (bpo-45496)
+            # 33 is ~0.05% of 65535, which is a reasonable margin
+            for col1_channel, col2_channel in zip(col1, col2):
+                self.assertAlmostEqual(col1_channel, col2_channel, delta=33)
+
         root = self.root
         rgb = root.winfo_rgb
 
@@ -202,9 +209,9 @@ class MiscTest(AbstractTkTest, unittest.TestCase):
         # #RGB - extends each 4-bit hex value to be 16-bit.
         self.assertEqual(rgb('#F0F'), (0xFFFF, 0x0000, 0xFFFF))
         # #RRGGBB - extends each 8-bit hex value to be 16-bit.
-        self.assertEqual(rgb('#4a3c8c'), (0x4a4a, 0x3c3c, 0x8c8c))
+        assertApprox(rgb('#4a3c8c'), (0x4a4a, 0x3c3c, 0x8c8c))
         # #RRRRGGGGBBBB
-        self.assertEqual(rgb('#dede14143939'), (0xdede, 0x1414, 0x3939))
+        assertApprox(rgb('#dede14143939'), (0xdede, 0x1414, 0x3939))
         # Invalid string.
         with self.assertRaises(tkinter.TclError):
             rgb('#123456789a')