https://github.com/idlesign/pytest-race
Description
Race conditions tester for pytest
Introduces start_race fixture to run race condition tests.
Requirements
Python 3.7+
pytest 2.9.0+
Usage
You can use start_race fixture in your tests as follows:
from time import sleep
ACCUMULATOR = 0 # This global var is race conditions prone.
def test_race(start_race):
from random import randint
def actual_test():
global ACCUMULATOR
increment = randint(1, 10000)
accumulator = ACCUMULATOR
sleep(1) # Simulate some lag.
ACCUMULATOR += increment
# By that moment ACCUMULATOR should have been updated
# by another thread. Let's try to prove it.
# Using simple `assert` as usual for pytest.
assert accumulator + increment == ACCUMULATOR
# Let's run `actual_test` in 2 threads.
start_race(threads_num=2, target=actual_test)
start_race accepts the following arguments:
threads_num - number of threads to run simultaneously.
target - actual test callable to run in threads.
Release files for pytest-race 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest-race-0.2.0.tar.gz | 5.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_race-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.5 kB
Release files / pytest-race-0.2.0.tar.gz
| Download URL | pytest-race-0.2.0.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92a43179ece42366ae2207bf4160bdb64781dc2ca425d1b37dc310c58ad0ade3
|
|
BLAKE2b-256 checksum How to use checksums |
2119aaec2ab5958304d74d8899e12e72987f17787f0c64c1b53873c7ff568089
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.8
|
Release files / pytest_race-0.2.0-py3-none-any.whl
| Download URL | pytest_race-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f2ae6cf1feece53619a76534a38863565b95f91436e78fb1bc7090234317eaf9
|
|
BLAKE2b-256 checksum How to use checksums |
04f2d30028f66885ae12ff210d35c93f827828b1c2d213d51d5f06b32ba3e8a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.8
|