Skip to main content

Non-alcoholic Mockito-style when-then utilities for unittest.mock

Project description

Mocktail

The non-alcoholic, Mockito-inspired utility for unittest.mock!

Build Status

This package provides dead-simple utilities for setting return values for mocks with a Mockito-inspired syntax:

from unittest.mock import MagicMock
from mocktail import when

my_mock = MagicMock()
when(my_mock).some_method('foo').then_return('bar')

my_mock.some_method('foo')  # 'bar'

Unlike other solutions (like mockito-python), it deliberately only works with mocks created using unittest.mock. To set the return values of arbitrary objects, combine with unittest.mock.patch.

Installation

pip install mocktail

Buyer beware!

This package -- though very minimal -- is in early alpha stage. Use with your own risk!

Contributing

Pull requests and bug reports are gladly accepted in this Github repository.

License

MIT

TODO

  • (More) matchers
  • Matcher for "rest of args / kwargs"
  • verify syntax
  • Docs
  • Some way to make "missed" matches more explicit, ie. raising an error e.g. when(...).foo(...).then_return(...).raise_missing() or when(..., raise_missing=True).foo(...).then_return(...)
  • Refactor the logic when hooking multiple then_returns for call proxies. Currently, it should work because existing side_effect is called, but it's a bit hairy
  • The matcher interface could be removed and instead we could just overwrite __eq__ for matchers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mocktail-0.0.4.tar.gz (3.6 kB view details)

Uploaded Source

File details

Details for the file mocktail-0.0.4.tar.gz.

File metadata

  • Download URL: mocktail-0.0.4.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

File hashes

Hashes for mocktail-0.0.4.tar.gz
Algorithm Hash digest
SHA256 fd11f32ef0b846c553c5c7c11f624dcacb3c058a0537968cf31b97d195e5f311
MD5 7c10b60786c49e4735f3842c8ca2f519
BLAKE2b-256 a9730682c5e0e35282e242b155279bc908fe1bdb0adfbc6a658db4fff751bd9f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page