GeezerVison is showing github.com — Tkinter: Tk 8.7 alphabetizes options in certain error messages · Issue #104497 · python/cpython
Tkinter: Tk 8.7 alphabetizes options in certain error messages #104497DescriptionAs done by e.g. https://core.tcl-lang.org/tk/info/b7db31b3a38b and causing this Tkinter test to fail:
======================================================================
FAIL: test_configure_type (test.test_tkinter.test_widgets.MenuTest.test_configure_type)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/user/git/cpython/Lib/test/test_tkinter/test_widgets.py", line 1403, in test_configure_type
self.checkEnumParam(
File "/Users/user/git/cpython/Lib/test/test_tkinter/widget_tests.py", line 134, in checkEnumParam
self.checkInvalidParam(widget, name, 'spam', errmsg=errmsg)
File "/Users/user/git/cpython/Lib/test/test_tkinter/widget_tests.py", line 63, in checkInvalidParam
self.assertEqual(str(cm.exception), errmsg)
AssertionError: 'bad type "spam": must be menubar, normal, or tearoff' != 'bad type "spam": must be normal, tearoff, or menubar'
- bad type "spam": must be menubar, normal, or tearoff
+ bad type "spam": must be normal, tearoff, or menubar
Linked PRs
Activityterryjreedy commented on May 15, 2023 Easy fix would be to change errmsg = ... to errprefix = 'bad type "spam": must be ' and add [:25] to str(...). I am keeping equality check instead of using .startswith to for helpful error message. sunmy2019 commented on May 15, 2023 And if you want a little more, you can use
>>> from collections import Counter
>>> Counter("1234") == Counter("3412")
Trueterryjreedy commented on May 17, 2023 @sunmy2019 As near as I can tell from from searching _tkinter.c and tkinter/init.py, the actual error message is from tcl/tk. If so, all that needs testing is that as error is raised with 'spam' in the message. The options in the expected message come from the test itself, so a mismatch would indicate an error in tcl/tk, which we are not trying to test, or in the test, from being overy specific.
@chrstphrchvz The title and linked tcl issue suggest that multiple messages have been revised. If so, a special case fix for one test would be insufficient. chrstphrchvz commented on May 20, 2023 ContributorAuthor More actions
@chrstphrchvz The title and linked tcl issue suggest that multiple messages have been revised. If so, a special case fix for one test would be insufficient.
Understood, however this is currently the only test I have found to be affected by alphabetizing changes. terryjreedy commented on May 22, 2023 Then I made a PR to fix just that test.
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|