From 7404685a6793c1b7f1e8cba66e66e179070829f9 Mon Sep 17 00:00:00 2001 From: Michael Foord Date: Mon, 12 Mar 2012 15:00:48 -0700 Subject: [PATCH] Adding PEP 417 'Adding mock to the standard library' --- pep-0417.txt | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 pep-0417.txt diff --git a/pep-0417.txt b/pep-0417.txt new file mode 100644 index 000000000..615d943c4 --- /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 +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`_ + [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: