◐ Shell
clean mode source ↗

gh-61215: threadingmock: Improve test suite to avoid race conditions by mariocj89 · Pull Request #106822 · python/cpython

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.