You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

asyncmock

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

asyncmock

Extension to the standard mock framework to support support async


Maintainers
1

Readme

########## Async Mock ##########

Awaitable mocks for async code.

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/ambv/black :alt: Once you go Black...

.. image:: https://travis-ci.org/timsavage/asyncmock.svg?branch=master :target: https://travis-ci.org/timsavage/asyncmock

.. image:: https://img.shields.io/pypi/l/asyncmock.svg :target: https://pypi.python.org/pypi/asyncmock

.. image:: https://img.shields.io/pypi/pyversions/asyncmock.svg :target: https://pypi.python.org/pypi/asyncmock

.. image:: https://img.shields.io/pypi/status/asyncmock.svg :target: https://pypi.python.org/pypi/asyncmock

.. image:: https://img.shields.io/pypi/implementation/asyncmock.svg :target: https://pypi.python.org/pypi/asyncmock

The package specifically only extends mock_ and not any other part of unittest.

.. _mock: https://mock.readthedocs.io/en/latest/

.. note:: Mock 4.0+ (included within Python 3.8+) now includes an awaitable mock mock.AsyncMock. This is recommended for new projects.

Installation

Install using pip:

.. code-block:: bash

pip install asyncmock

Usage

Async Mock is a drop in replacement for a Mock object eg:

.. code-block:: python

my_mock = AsyncMock()

await my_mock("foo", bar=123)

my_mock.assert_called_with("foo", bar=123)

This also works with nested methods:

.. code-block:: python

my_mock = AsyncMock()

await my_mock.my_method("foo", bar=123)

my_mock.my_method.assert_called_with("foo", bar=123)

Side effects and return values can also be awaited.

Including a non-awaitable item:

.. code-block:: python

my_mock = AsyncMock()

my_mock.my_method.not_async = True
my_mock.my_method("foo", bar=123)

The not_async option can also be provided as an init argument. The not_async argument is not inherited by sub-mocks.

pytest Example

These examples use pytest_ along with the pytest-asyncio_ plugin.

.. _pytest: https://docs.pytest.org/en/latest/ .. _pytest-asyncio: https://github.com/pytest-dev/pytest-asyncio

Generating an exception:

.. code-block:: python

@pytest.mark.asyncio
async def test_raise_exception():
    my_mock = AsyncMock(side_effect=KeyError)

    with pytest.raises(KeyError):
        await my_mock()

    my_mock.assert_called()

Keywords

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc