[Python-checkins] peps: Adding PEP 417 'Adding mock to the standard library'

michael.foord python-checkins at python.org
Mon Mar 12 23:01:49 CET 2012


http://hg.python.org/peps/rev/ef8a076004d6
changeset:   4126:ef8a076004d6
user:        Michael Foord <michael at voidspace.org.uk>
date:        Mon Mar 12 15:00:48 2012 -0700
summary:
  Adding PEP 417 'Adding mock to the standard library'

files:
  pep-0417.txt |  71 ++++++++++++++++++++++++++++++++++++++++
  1 files changed, 71 insertions(+), 0 deletions(-)


diff --git a/pep-0417.txt b/pep-0417.txt
new file mode 100644
--- /dev/null
+++ b/pep-0417.txt
@@ -0,0 +1,71 @@
+PEP: 417
+Title: Including mock in the Standard Library
+Version: $Revision$
+Last-Modified: $Date$
+Author: Michael Foord <michael at 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:

-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list