replace explicit sleep with polling in animation tests #1697
+36
−22
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.
Fixes #1696
Refactor
check_animate_outputto use a polling loop instead oftime.sleep(). This eliminates race conditions causing flaky failures on CI runners and speeds up local execution.Removed rigid sleep calculations based on frame count.
Added
whileloop to capture stderr until expected length is reached.Simplified
test_env_no_animatesleep logic.I have added a news fragment under
changelog.d/(if the patch affects the end users)Summary of changes
Replaced the unstable
time.sleep()synchronization incheck_animate_output(insidetests/test_animate.py) with a polling loop.Instead of waiting a fixed duration (which causes flakes on slow CI runners), the test now waits for the exact number of characters to appear in
stderr. This makes the test deterministic and significantly faster on local machines.Test plan
Tested by running the animation tests locally: