[3.13] gh-86673: Loosen test_ttk.test_identify() requirements (GH-125335) (#125390)

In aeca373b3 (PR gh-12011, issue gh-71500), test_identify() was changed to expect different results on Darwin. Ned's fix was later adjusted by e52f9bee8. This workaround is only needed for some variants of Tk/Tcl on macOS, so we now allow both the workaround and the generic results for these tests.
(cherry picked from commit 4197a796ec)

Co-authored-by: Erlend E. Aasland <erlend@python.org>
This commit is contained in:
Miss Islington (bot) 2024-10-13 10:04:22 +02:00 committed by GitHub
parent 801ef7de08
commit bcadaf2321
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -336,7 +336,8 @@ class EntryTest(AbstractWidgetTest, unittest.TestCase):
'show', 'state', 'style', 'takefocus', 'textvariable',
'validate', 'validatecommand', 'width', 'xscrollcommand',
)
IDENTIFY_AS = 'Entry.field' if sys.platform == 'darwin' else 'textarea'
# bpo-27313: macOS Tk/Tcl may or may not report 'Entry.field'.
IDENTIFY_AS = {'Entry.field', 'textarea'}
def setUp(self):
super().setUp()
@ -373,8 +374,7 @@ class EntryTest(AbstractWidgetTest, unittest.TestCase):
self.entry.pack()
self.entry.update()
# bpo-27313: macOS Cocoa widget differs from X, allow either
self.assertEqual(self.entry.identify(5, 5), self.IDENTIFY_AS)
self.assertIn(self.entry.identify(5, 5), self.IDENTIFY_AS)
self.assertEqual(self.entry.identify(-1, -1), "")
self.assertRaises(tkinter.TclError, self.entry.identify, None, 5)
@ -461,7 +461,7 @@ class ComboboxTest(EntryTest, unittest.TestCase):
'validate', 'validatecommand', 'values',
'width', 'xscrollcommand',
)
IDENTIFY_AS = 'Combobox.button' if sys.platform == 'darwin' else 'textarea'
IDENTIFY_AS = {'Combobox.button', 'textarea'}
def setUp(self):
super().setUp()
@ -1204,7 +1204,7 @@ class SpinboxTest(EntryTest, unittest.TestCase):
'takefocus', 'textvariable', 'to', 'validate', 'validatecommand',
'values', 'width', 'wrap', 'xscrollcommand',
)
IDENTIFY_AS = 'Spinbox.field' if sys.platform == 'darwin' else 'textarea'
IDENTIFY_AS = {'Spinbox.field', 'textarea'}
def setUp(self):
super().setUp()