Skip to content

gh-69134: Wait until mapped in keyboard virtual-event tests#152599

Merged
serhiy-storchaka merged 1 commit into
python:mainfrom
serhiy-storchaka:gh-69134-harden-virtual-event-tests
Jun 29, 2026
Merged

gh-69134: Wait until mapped in keyboard virtual-event tests#152599
serhiy-storchaka merged 1 commit into
python:mainfrom
serhiy-storchaka:gh-69134-harden-virtual-event-tests

Conversation

@serhiy-storchaka

Copy link
Copy Markdown
Member

TreeviewTest.test_virtual_events and ListboxTest.test_selection_event (both added in gh-151678) drive keyboard navigation events with event_generate('<Down>') after focus_force(), but only called update() before generating them.
On Windows a synthetic key event is only delivered once the toplevel is actually mapped and holding the keyboard focus, so the events could be dropped and the selection never moved — test_virtual_events failed intermittently on the Windows buildbots.

This is the same window-manager map race that gh-69134 already hardened the other GUI tests against; these two keyboard tests were simply missed.
Wait until the widget is mapped (require_mapped()) before generating the events.

test_virtual_events and test_selection_event generate key events after
focus_force().  On Windows these are only delivered once the toplevel is
mapped, so they could be dropped and the test fail.  Wait until the
widget is mapped, as the other GUI tests already do.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bedevere-app bedevere-app Bot added the tests Tests in the Lib/test dir label Jun 29, 2026
@serhiy-storchaka serhiy-storchaka added needs backport to 3.13 bugs and security fixes needs backport to 3.14 bugs and security fixes needs backport to 3.15 pre-release feature fixes, bugs and security fixes skip news labels Jun 29, 2026
@serhiy-storchaka serhiy-storchaka enabled auto-merge (squash) June 29, 2026 14:06
@serhiy-storchaka serhiy-storchaka merged commit be4eebb into python:main Jun 29, 2026
99 of 101 checks passed
@miss-islington-app

Copy link
Copy Markdown

Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14, 3.15.
🐍🍒⛏🤖

@bedevere-app

bedevere-app Bot commented Jun 29, 2026

Copy link
Copy Markdown

GH-152605 is a backport of this pull request to the 3.15 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.15 pre-release feature fixes, bugs and security fixes label Jun 29, 2026
@bedevere-app

bedevere-app Bot commented Jun 29, 2026

Copy link
Copy Markdown

GH-152607 is a backport of this pull request to the 3.13 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.13 bugs and security fixes label Jun 29, 2026
@bedevere-app

bedevere-app Bot commented Jun 29, 2026

Copy link
Copy Markdown

GH-152606 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Jun 29, 2026
serhiy-storchaka added a commit that referenced this pull request Jun 29, 2026
…H-152599) (GH-152607)

test_virtual_events and test_selection_event generate key events after
focus_force().  On Windows these are only delivered once the toplevel is
mapped, so they could be dropped and the test fail.  Wait until the
widget is mapped, as the other GUI tests already do.
(cherry picked from commit be4eebb)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
serhiy-storchaka added a commit that referenced this pull request Jun 29, 2026
…H-152599) (GH-152605)

test_virtual_events and test_selection_event generate key events after
focus_force().  On Windows these are only delivered once the toplevel is
mapped, so they could be dropped and the test fail.  Wait until the
widget is mapped, as the other GUI tests already do.
(cherry picked from commit be4eebb)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip news tests Tests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant