ANN: mock 0.7.0 beta 1

Michael Foord michael at
Tue Jun 22 16:37:05 CEST 2010

I'm pleased to announce a new release of the mock module, the first in a 
while. Konrad Delong has joined me as a maintainer of mock and has been 
a great help in getting this release out. As there are several major new 
features this is a beta release, with 0.7.0 final coming out in a few 
weeks assuming there are no major problems discovered. Please download 
it and try it out:


mock is a Python module that provides a core Mock class. It is intended 
to reduce the need for creating a host of trivial stubs throughout your 
test suite. After performing an action, you can make assertions about 
which methods / attributes were used and arguments they were called 
with. You can also specify return values and set needed attributes in 
the normal way.

mock is tested on Python versions 2.4-2.7 and Python 3.

Full documentation is included in the distribution.

Changes in 0.7.0 (including the much awaited magic method support) are:

* Addition of ``mocksignature``
* Ability to mock magic methods
* Ability to use patch and patch.object as class decorators
* Renamed ``patch_object`` to ``patch.object`` (``patch_object`` is 
* Addition of ``MagicMock`` class with all magic methods pre-created for you
* Python 3 compatibility (tested with 3.2 but should work with 3.0 & 3.1 as
* Addition of ``patch.dict(...)`` for changing dictionaries during a test
* Addition of ``mocksignature`` argument to ``patch`` and ``patch_object``
* ``help(mock)`` works now (on the module). Can no longer use ``__bases__``
   as a valid sentinel name (thanks to Stephen Emslie for reporting and
   diagnosing this)
* Addition of soft comparisons: call_args, call_args_list and method_calls
   return now tuple-like objects which compare equal even when empty args
   or kwargs are skipped
* Added some docstrings.
* BUGFIX: ``side_effect`` now works with ``BaseException`` exceptions like
* BUGFIX: patching the same object twice now restores the patches correctly
* The tests now require `unittest2 <>`_
   to run
* `Konrad Delong <>`_ added as co-maintainer

The main tasks before a 0.7.0 final release are finishing the 
documentation and docstrings, plus allowing `patch.dict(...)` to act as 
a context manager (currently decorator only).

All the best,

Michael Foord


READ CAREFULLY. By accepting and reading this email you agree, on behalf of your employer, to release me from all obligations and waivers arising from any and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I have entered into with your employer, its partners, licensors, agents and assigns, in perpetuity, without prejudice to my ongoing rights and privileges. You further represent that you have the authority to release me from any BOGUS AGREEMENTS on behalf of your employer.

More information about the Python-announce-list mailing list