Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pytest-race

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pytest-race

Race conditions tester for pytest

  • 0.2.0
  • PyPI
  • Socket score

Maintainers
1

pytest-race

https://github.com/idlesign/pytest-race

.. image:: https://img.shields.io/pypi/v/pytest-race.svg :target: https://pypi.python.org/pypi/pytest-race

.. image:: https://img.shields.io/pypi/dm/pytest-race.svg :target: https://pypi.python.org/pypi/pytest-race

.. image:: https://img.shields.io/pypi/l/pytest-race.svg :target: https://pypi.python.org/pypi/pytest-race

.. image:: https://img.shields.io/coveralls/idlesign/pytest-race/master.svg :target: https://coveralls.io/r/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:

.. code-block:: python

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.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc