Sitelet https://github.com/python/cpython/issues/107262
Skip to content

Tkinter: test failure due to Tk 8.6.14 listbox bugfix #107262

Description

@chrstphrchvz

The current output of the itemconfigure command for listbox widgets falsely suggests that the configuration of listbox items is influenced by the options database (if I understand correctly). This will be fixed in Tk 8.6.14: see https://core.tcl-lang.org/tk/info/ed8eae599d76 and https://core.tcl-lang.org/tk/vdiff?from=edf00be1&to=025022a4

Although tkinter.Listbox.itemconfigure() will still work properly, test.test_tkinter.test_widgets.ListboxTest.test_itemconfigure will fail since it expects the erroneous output:

======================================================================
FAIL: test_itemconfigure (test.test_tkinter.test_widgets.ListboxTest.test_itemconfigure)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/user/git/cpython/Lib/test/test_tkinter/test_widgets.py", line 1002, in test_itemconfigure
    self.assertEqual(widget.itemconfigure(0, 'background'),
AssertionError: Tuples differ: ('background', '', '', '', 'red') != ('background', 'background', 'Background', '', 'red')

First differing element 1:
''
'background'

- ('background', '', '', '', 'red')
+ ('background', 'background', 'Background', '', 'red')

Linked PRs

Activity

  1. terryjreedy commented on Jul 26, 2023

    @terryjreedy
    Member

    I have no experience with the options database. Are we currently testing for buggy behavior?

  2. serhiy-storchaka commented on Jul 26, 2023

    @serhiy-storchaka
    Member

    We are currently testing for the current behavior. They change Tk tests, so we should also change corresponding Tkinter tests. Either make them more lenient, so they will pass on all version (we can use mock.ANY for this), or expect different result depending on the Tk patch level, or only test this assertion on the fixed Tk with the correct result. The exact value is not so important as its "form" -- we test that itemconfigure() can take two arguments and return a 5-tuple, its first item is the option name and its last item is the current value.

    Do you want to create a PR @chrstphrchvz?

  3. added a commit that references this issue on May 30, 2024
  4. added 2 commits that reference this issue on May 30, 2024
  5. added 2 commits that reference this issue on May 30, 2024
  6. added a commit that references this issue on Jul 11, 2024
  7. added a commit that references this issue on Jul 17, 2024
  8. added 2 commits that reference this issue on Feb 18, 2025
  9. hugovk commented on Feb 18, 2025

    @hugovk
    Member

    We need to backport this to 3.9, because it's still using ubuntu-20.04 which is deprecated and will be fully unsupported in April: actions/runner-images#11101.

    And the upgrade to newer Ubuntu also upgrades Tk.

  10. added 3 commits that reference this issue on Feb 18, 2025
  11. added 3 commits that reference this issue on Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions