Skip to main content

A module to easily mock code while testing.

Project description

auto_mock is a module for mocking during unit testing. It automatically replaces all variables and functions external to the unit with default values to help developers exclude external state in their unit tests.


pip install python-auto-mock


In the example we will be making use of

X = 1
Y = 2
Z = 3

class MyClass():
    def addition_with_globals(self):
        print(X + Y)
        return X + Y

To test this class we will write a test script.

import auto_mock

def test_my_class_addition():
    stubs = {
        'X' : 36,
        'Y' : 35,

    with auto_mock.full_mock('myclass', 'MyClass.addition_with_globals', stubs) as addition_with_globals:
        if addition_with_globals() != 71:
            print("Addition is broken")

def main():


Done correctly this should print out


full_mock takes 3 non optional arguments.

  1. The module name where the code is located.
  2. The specific function or method that is being tested.
  3. The dictionary of stubs/mocks that you would like to override the values with.

The stubs variable contains the names of the variables that are being mocked. In this example we have X, Y, and Z as global variables. We only use X and Y in this example, so they are the only variables that are in the stubs dictionary.

full_mock returns the function or method that you are trying to test with the external variables mocked. If the variable is not within the stubs then it is mocked with a default object. Inside the with block you can test that the function does what it is supposed to do.

Project details

Download files

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

Files for python-auto-mock, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size python_auto_mock-0.1.1-py2.py3-none-any.whl (5.4 kB) File type Wheel Python version 3.5 Upload date Hashes View
Filename, size python-auto-mock-0.1.1.tar.gz (4.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page