Race conditions tester for pytest
Project description
https://github.com/idlesign/pytest-race
Description
Race conditions tester for pytest
Introduces start_race fixture to run race conditions tests.
Requirements
Python 2.7+, 3.3+
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:
start_race - number of threads to run simultaneously.
start_race - actual test callable to run in threads.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pytest-race-0.1.0.tar.gz
(4.6 kB
view hashes)
Built Distribution
Close
Hashes for pytest_race-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bb633aa217cd5e0950cbb6554c339ab0a777058b630d1af537d495ee867ba4f |
|
MD5 | c23dbfd477b60c27be671bc8fc232fae |
|
BLAKE2b-256 | 0306f4d26af70490a32fde32ed8b2add6b04b715e455198a6159085855d3134e |