--- id: pytest-race version: "0.2.0" license: BSD 3-Clause License license_treatment: permissive maintenance: abandoned --- # pytest-race — Race conditions tester for pytest License: permissive · Maintenance: abandoned · Downloads: 792.8K/mo ## What it is and what it does pytest-race is a pytest plugin that adds a `start_race` fixture for testing code that may have race conditions. It runs a test function concurrently in multiple threads and checks whether the code behaves correctly under concurrent access. The fixture accepts a thread count and a test callable, then executes that callable in parallel threads to expose timing-dependent bugs. The package has no runtime dependencies beyond pytest itself, making it lightweight to add to a test suite. However, it has been abandoned since 2022, so compatibility with modern pytest and Python versions is uncertain. The approach of using threads to surface race conditions is inherently probabilistic—bugs may not always manifest in a single test run. Use it for: - Verify that global state or shared variables are protected against concurrent modification in multi-threaded code. - Test thread-safe implementations of caches, counters, or other mutable objects accessed from multiple threads. - Detect data corruption or assertion failures that occur only under concurrent access patterns. - Validate that locks or synchronization primitives are correctly placed in critical sections. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides a pytest fixture that runs test functions concurrently in multiple threads to detect race conditions in your code. Yes, if you need to test for race conditions in a pytest suite and are willing to accept the maintenance risk. The package is simple, has no dependencies, and works for its stated purpose. However, verify compatibility with your pytest and Python versions first, since the project is no longer maintained. ## Install pip install pytest-race uv add pytest-race poetry add pytest-race ## Installing pytest-race Before you install: Installation is straightforward with no runtime dependencies. However, the project is abandoned—last updated in 2022 with no recent maintenance, so compatibility with newer versions is uncertain. License in practice: BSD 3-Clause License is permissive and poses no restrictions on use, modification, or distribution in proprietary or open-source projects. Quickstart: pip install pytest-race from time import sleep def test_race(start_race): def actual_test(): global ACCUMULATOR ACCUMULATOR += 1 assert ACCUMULATOR > 0 start_race(threads_num=2, target=actual_test) Requires Python 3.7+ and pytest 2.9.0+ Verify before relying: - Whether the fixture works reliably with current pytest versions (last tested in 2022) - Whether the threading approach reliably surfaces race conditions or if timing-dependent tests may be flaky ## Package facts - License: BSD 3-Clause License (permissive) - Python support: unspecified - Install friction: low - Maintenance: abandoned - Downloads: 792.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags pytest race condition testing, concurrent thread testing, race condition detector, pytest threading fixture, multi-threaded test runner, concurrent test execution, thread safety testing, concurrency-testing, thread-safety [View on SkillFed](https://skillfed.io/packages/pytest-race) · [View on PyPI](https://pypi.org/project/pytest-race/)