Repository navigation
Make native flash, snapshot and token-ID tests deterministic - #18
Merged
Merged
Conversation
- Wait for native exposure before flashing: cocoa and Windows expose a shown window asynchronously, and only exposed windows receive a flash. - Drive the flash clock explicitly (flash_clock fixture), so a 50 ms HOLD cannot pass between paints while the test waits to observe it. - Reproduce a reused object ID by moving the departed cache entry onto the new object's id instead of relying on the CPython allocator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
python-introspect 0.2.4 used inspect._ClassFinder, which Python 3.13 removed, so dataclass field help came back empty. Co-Authored-By: Claude Opus 5.5 <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.
main CI (run 38029125833) and PR #17 fail on the same tests. Causes and fixes:
actual_surfaces,rendered_canvasandobserved_formshowed a window and processed events once. On cocoa and Windows a shown window is exposed asynchronously, and only exposed windows receive a flash or a paint, so recipient counts came out 0 or 1 instead of 2 and render captures never completed. The fixtures now wait withqtbot.waitExposed.phase is HOLDwhile the real clock ran, so under CI load the playback could pass from HOLD to FADE_OUT between polls. A newflash_clockfixture (conftest) replaces the flash coordinator's clock; the tests advance it byfade_in_sexplicitly, so HOLD holds until the assertion. Assertions are unchanged.test_native_reused_object_id_does_not_override_restored_tokenneeded CPython to hand the new object the departed object's address, which 3.13 does not do here. The test now moves the departed cache entry onto the new object's id, the state an address reuse produces, and checks the same property (renamedtest_reused_object_id_does_not_override_restored_token).Still failing on 3.13 until python-introspect 0.2.5 is released:
test_preview_policy_fields_include_authored_help_for_hidden_controls. python-introspect used the privateinspect._ClassFinder, removed in Python 3.13, so all inline field docs came back empty. Fixed in OpenHCSDev/python-introspect#19; after it is released, this branch needspython-introspect>=0.2.5.Local (Python 3.14, offscreen, with python-introspect from #19): 608 passed, 1 skipped. Flash and snapshot files: 48 passed, 5 runs in a row. Without the clock advance, the three native flash tests time out, so the clock drives them.
🤖 Generated with Claude Code