Skip to main content

A thin layer of sugar atop Python's mock.

Project description

mockish

A thin layer of sugar atop Python's mock.

Links
Code Repo https://www.github.com/fresh2dev/mockish
Mirror Repo https://www.f2dv.com/code/r/mockish
Documentation https://www.f2dv.com/code/r/mockish/i
Changelog https://www.f2dv.com/code/r/mockish/i/changelog
License https://www.f2dv.com/code/r/mockish/i/license
Funding https://www.f2dv.com/fund

GitHub release (latest SemVer) GitHub Release Date License GitHub issues GitHub pull requests GitHub Repo stars PyPI - Downloads Docker Pulls Docs Website Coverage Website Funding


Overview

mockish is a small tool I built to make life easier when writing tests in Python.

It provides:

  1. Explicit alternatives to the nuanced mock.Mock(side_effect=...) argument, including:

    • mockish.Mock(return_value=...)
    • mockish.Mock(return_call=...)
    • mockish.Mock(return_once=...)
    • mockish.Mock(return_each=...)
    • mockish.Mock(return_exception=...)
  2. Methods for creating HTTP responses -- both requests.Response and httpx.Response objects -- that can be returned by the Mock, including:

    • mockish.httpx.Response.from_dict(...)
    • mockish.requests.Response.from_dict(...)

Install

From PyPi{:target="_blank"}:

pip install mockish

Use

Complete example of mocking a HTTP response:

from mockish import Mock, patch
from mockish.requests import Response
import requests

mock_resp = Response.from_dict({'hello': 'world'})

with patch.object(
    requests,
    'get',
    Mock(return_once=mock_resp)
):
    resp: requests.Response = requests.get('https://www.fresh2.dev')

    requests.get.assert_called_once()

print(resp)
> <Response [200]>

print(resp.json())
> {'hello': 'world'}

See the reference docs for more examples:

Support

If this project delivers value to you, please provide feedback, code contributions, and/or funding.

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

mockish-0.1.1.tar.gz (53.3 kB view details)

Uploaded Source

Built Distribution

mockish-0.1.1-py3-none-any.whl (43.2 kB view details)

Uploaded Python 3

File details

Details for the file mockish-0.1.1.tar.gz.

File metadata

  • Download URL: mockish-0.1.1.tar.gz
  • Upload date:
  • Size: 53.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for mockish-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5eb86d4b80b8a04726d30f0cd9f362601e8df5099d574426e0fd9cc8b36d6de1
MD5 8ac15d796ee998e8a4ea453ea1a2f007
BLAKE2b-256 1f46cc45ff97d8e3c02fff3bf1293074fb1e32702d586f4f479305193e5244de

See more details on using hashes here.

File details

Details for the file mockish-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mockish-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 43.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for mockish-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0a52eeb409d058ce3a59fe523928b81e741b7c3482643eed044569d90de0e81
MD5 1954b9d5f809c91c8284b2204539a95f
BLAKE2b-256 be4284788b3735a23bcfb857bfa5fc2bf4beb77e9fc8b89d37ccb624df8fbd72

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