Skip to main content

Async Mock

Awaitable mocks for async code.

https://img.shields.io/badge/code%20style-black-000000.svg https://travis-ci.org/timsavage/asyncmock.svg?branch=master https://img.shields.io/pypi/l/asyncmock.svg https://img.shields.io/pypi/pyversions/asyncmock.svg https://img.shields.io/pypi/status/asyncmock.svg https://img.shields.io/pypi/implementation/asyncmock.svg

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

Installation

Install using pip:

pip install asyncmock

Usage

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

my_mock = AsyncMock()

await my_mock("foo", bar=123)

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

This also works with nested methods:

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:

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.

Generating an exception:

@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()

Metadata

Release files for asyncmock 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asyncmock 0.4.2
File Size Uploaded
asyncmock-0.4.2.tar.gz 3.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for asyncmock 0.4.2
File Interpreter ABI Platform
asyncmock-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 7.4 kB

Release files / asyncmock-0.4.2.tar.gz

Download URL asyncmock-0.4.2.tar.gz
Size 3.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c251889d542e98fe5f7ece2b5b8643b7d62b50a5657d34a4cbce8a1d5170d750
BLAKE2b-256 checksum
How to use checksums
c858fa6b3147951a8d82cc78e628dffee0aa5838328c52ebfee4e0ddceb5d92b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.4.0 requests-toolbelt/0.8.0 tqdm/4.32.2 CPython/3.6.9

Release files / asyncmock-0.4.2-py3-none-any.whl

Download URL asyncmock-0.4.2-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd8bc4e7813251a8959d1140924ccba3adbbc7af885dba7047c67f73c0b664b1
BLAKE2b-256 checksum
How to use checksums
03e3873f433eca053c92d3cdb9336a379ee025bc1a86d4624ef87bf97a9ac7bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.4.0 requests-toolbelt/0.8.0 tqdm/4.32.2 CPython/3.6.9

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 release files

0.4.1

2 release files

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page