Hello all,

At the Python Language Summit adding the "mock" library to the Python Standard 
Library was discussed and agreed. Here is a very brief PEP covering the 
decision and rationale.

All the best,

Michael Foord

PEP: 417
Title: Including mock in the Standard Library
Version: $Revision$
Last-Modified: $Date$
Author: Michael Foord <mich...@python.org>
Status: Draft
Type: Standards Track
Content-Type: text/plain
Created: 12-Mar-2012
Python-Version: 3.3
Post-History: 12-Mar-2012


Abstract

    This PEP proposes adding the mock [1]_  testing library
    to the Python standard library as ``unittest.mock``.


Rationale

    Creating mock objects for testing is a common need in Python.
    Many developers create ad-hoc mocks, as needed, in their test
    suites. This is currently what we do in the Python test suite,
    where a standardised mock object library would be helpful.
    
    There are many mock object libraries available for Python [2]_.
    Of these, mock is overwhelmingly the most popular, with as many
    downloads on PyPI as the other mocking libraries combined.
    
    An advantage of mock is that it is a mocking library and not a
    framework. It provides a configurable and flexible mock object,
    without being opinionated about how you write your tests. The
    mock api is now well battle-tested and stable.
    
    mock also handles safely monkeypatching and unmonkeypatching
    objects during the scope of a test. This is hard to do safely
    and many developers / projects mimic this functionality
    (often incorrectly). A standardised way to do this, handling
    the complexity of patching in the presence of the descriptor
    protocol (etc) is useful. People are asking for a "patch" [3]_
    feature to unittest. Doing this via mock.patch is preferable
    to re-implementing part of this functionality in unittest.


Background
    Addition of mock to the Python standard library was discussed
    and agreed to at the Python Language Summit 2012.
    

References

    [1] `mock library on PyPI<http://pypi.python.org/pypi/mock>`_
    [2] http://pypi.python.org/pypi?%3Aaction=search&term=mock&submit=search
    [3] http://bugs.python.org/issue11664



Copyright

    This document has been placed in the public domain.



Local Variables:
mode: indented-text
indent-tabs-mode: nil
sentence-end-double-space: t
fill-column: 70
coding: utf-8
End:

--
http://www.voidspace.org.uk/


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing 
http://www.sqlite.org/different.html





_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to