[3.13] gh-128562: Fix generation of the tkinter widget names (GH-128604) (GH-128791)

There were possible conflicts if the widget class name ends with a digit.
(cherry picked from commit da8825ea95)

Co-authored-by: Zhikang Yan <2951256653@qq.com>
This commit is contained in:
Miss Islington (bot) 2025-01-13 17:23:33 +01:00 committed by GitHub
parent 66d0636025
commit b1065767b4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 1 deletions

View file

@ -31,12 +31,20 @@ def test_repr(self):
self.assertEqual(repr(f), '<tkinter.Frame object .top.child>')
def test_generated_names(self):
class Button2(tkinter.Button):
pass
t = tkinter.Toplevel(self.root)
f = tkinter.Frame(t)
f2 = tkinter.Frame(t)
self.assertNotEqual(str(f), str(f2))
b = tkinter.Button(f2)
for name in str(b).split('.'):
b2 = Button2(f2)
for name in str(b).split('.') + str(b2).split('.'):
self.assertFalse(name.isidentifier(), msg=repr(name))
b3 = tkinter.Button(f2)
b4 = Button2(f2)
self.assertEqual(len({str(b), str(b2), str(b3), str(b4)}), 4)
@requires_tk(8, 6, 6)
def test_tk_busy(self):