Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/posener/mock-import

A helper mocking function to mask ImportErrors
https://github.com/posener/mock-import

Last synced: 3 days ago
JSON representation

A helper mocking function to mask ImportErrors

Awesome Lists containing this project

README

        

mock_import
===========

.. image:: https://travis-ci.org/posener/mock-import.svg?branch=master
:target: https://travis-ci.org/posener/mock-import

.. image:: https://badge.fury.io/py/mock-import.svg
:target: https://pypi.python.org/pypi/mock-import

.. image:: https://codecov.io/gh/posener/mock-import/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/posener/mock-import

A helper mocking function to mask ``ImportError`` s on a scoped code.
Failed imports will be ignored, unless specified by the *do_not_mock* argument.

Installation
------------

Using pip: ``pip install mock-import``

Usage
-----

Import:
>>> from mock_import import mock_import

Mocking import for a code block:
>>> with mock_import():
... import no_such_module # Won't raise ImportError
... no_such_module.no_such_function() # Won't raise AttributeError

Mocking import as a decorator:
>>> @mock_import()
... def method():
... import no_such_module # Won't raise ImportError
... no_such_module.no_such_function() # Won't raise AttributeError

>>> import no_such_module # raises ImportError

Making an exception:
>>> with mock_import(do_not_mock='no_such_module'):
... import no_such_other_module # Won't raise ImportError
... import no_such_module # Will raise ImportError

>>> with mock_import(do_not_mock=['nsm1', 'nsm2']):
... import nsm # Won't raise ImportError
... import nsm1 # Will raise ImportError
... import nsm2 # Will raise ImportError