gh-69134: Wait until mapped in keyboard virtual-event tests#152599
Merged
serhiy-storchaka merged 1 commit intoJun 29, 2026
Merged
Conversation
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>
|
Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14, 3.15. |
|
GH-152605 is a backport of this pull request to the 3.15 branch. |
|
GH-152607 is a backport of this pull request to the 3.13 branch. |
|
GH-152606 is a backport of this pull request to the 3.14 branch. |
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>
serhiy-storchaka
added a commit
that referenced
this pull request
Jun 29, 2026
…H-152599) (GH-152606) 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TreeviewTest.test_virtual_eventsandListboxTest.test_selection_event(both added in gh-151678) drive keyboard navigation events withevent_generate('<Down>')afterfocus_force(), but only calledupdate()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_eventsfailed 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.