Skip to main content

Mockito is a spying framework originally based on the Java library with the same name. (Actually we invented the strict stubbing mode back in 2009.)

https://github.com/kaste/mockito-python/actions/workflows/test-lint-go.yml/badge.svg

Install

pip install mockito

Quick Start

90% use case is that you want to stub out a side effect.

from mockito import when, mock, unstub

when(os.path).exists('/foo').thenReturn(True)

# or:
import requests  # the famous library
# you actually want to return a Response-like obj, we'll fake it
response = mock({'status_code': 200, 'text': 'Ok'})
when(requests).get(...).thenReturn(response)

# use it
requests.get('http://google.com/')

# clean up
unstub()

Read the docs

http://mockito-python.readthedocs.io/en/latest/

Breaking changes in v2

Two functions have been renamed:

  • verifyNoMoreInteractions is deprecated. Use ensureNoUnverifiedInteractions instead.

Although verifyNoMoreInteractions is the name used in mockito for Java, it is a misnomer over there too (imo). Its docs say “Checks if any of given mocks has any unverified interaction.”, and we make that clear now in the name of the function, so you don’t need the docs to tell you what it does.

  • verifyNoUnwantedInteractions is deprecated. Use verifyExpectedInteractions instead.

The new name should make it clear that it corresponds to the usage of expect (as alternative to when).

Context managers now check the usage and any expectations (if you used expect) on exit. You can disable this check by setting the environment variable MOCKITO_CONTEXT_MANAGERS_CHECK_USAGE to “0”. Note that this does not disable the check for any explicit expectations you might have set with expect.

This roughly corresponds to the verifyStubbedInvocationsAreUsed contra the verifyExpectedInteractions functions.

  • The (limited) in-order verification mode (inorder.verify(…)) is deprecated in favor of InOrder(…). InOrder support true ordered, cross-mock verification.

New in v2

First-class async/await and property/descriptor support. Chaining. InOrder. Enhanced captor, new patch_attr and patch_dict. Refer the changelog<https://mockito-python.readthedocs.io/en/latest/changes.html>.

Development

I use uv, and if you do too: you just clone this repo to your computer, then run uv sync in the root directory. Example usage:

uv run pytest

To run the full supported Python matrix in parallel:

uv run python scripts/run-pytest-matrix.py

To run only selected versions:

uv run python scripts/run-pytest-matrix.py -p 3.8 -p 3.14

The matrix runner keeps per-version virtual environments in .runner/ (.venv-3.8, etc.) so runs can execute safely in parallel while only outcome-*.txt files are wiped each run. Use --recreate-envs to rebuild those environments.

Note: development and docs tooling target Python >=3.12, while the library itself supports older Python versions at runtime.

To install everything (all dependency groups, Python >=3.12), run:

uv sync --all-groups

Start the sphinx server:

uv run sphinx-autobuild docs docs/_build/html

Release files for mockito 2.0.4

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

Source distribution (sdist)

Source distribution for mockito 2.0.4
File Size Uploaded
mockito-2.0.4.tar.gz 218.6 kB Details

Built distribution (wheel)

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

Total release size: 270.5 kB

Release files / mockito-2.0.4.tar.gz

Download URL mockito-2.0.4.tar.gz
Size 218.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d341f228c5b5ccf3c473751f6c6f09d8d83c5da49846a6ee31eb60b65607e0ef
BLAKE2b-256 checksum
How to use checksums
c88eeff6dfa2c597ddc09d2c83a922f5154f00fa8bda90f68eda984a6d7506bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / mockito-2.0.4-py3-none-any.whl

Download URL mockito-2.0.4-py3-none-any.whl
Size 51.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
04d7e6e9b9b7288e76235b894f9b3cbfdc9cfc631e548ed607933146ae9db1f5
BLAKE2b-256 checksum
How to use checksums
0170625563b5925ee5393a971f4790aab4b0059deda3bf9196c57ba7172e9ab3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

2.0.4 This release

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.12

1 release file

1.0.11

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.1

1 release file

0.6.0

2 release files

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.1

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