Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-61215: threadingmock: Improve test suite to avoid race conditions #106822

Merged
merged 1 commit into from
Jul 17, 2023

Conversation

mariocj89
Copy link
Contributor

@mariocj89 mariocj89 commented Jul 17, 2023

Simplify tests and split them into multiple tests to prevent assertions from triggering race conditions.
Additionally, we rely on calling the mocks without delay to validate the functionality of matching calls.
The test suite had a lot of duplicated validation and tests that valdated multiple potentially racing calls that made it flaky.

The test suite has been changed to use single very short timeout that we wait on, so the only race that can happen is for the method to be called before we call "wait_until_X". Should that happen the test suite succeeds any way (as expected).

The change also runs the suite significantly faster (40% in my laptop).

@cjw296 let me know if you think I'm missing anything from testing but I think this does covers the whole functionality.

Simplify tests and split them into multiple tests to prevent assertions
from triggering race conditions.
Additionally, we rely on calling the mocks without delay to validate the
functionality of matching calls.
@cjw296 cjw296 enabled auto-merge (squash) July 17, 2023 18:56
@cjw296 cjw296 merged commit 7e96370 into python:main Jul 17, 2023
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants