| 4.0.0 |
| ----- |
| |
| - No Changes from 4.0.0b1. |
| |
| 4.0.0b1 |
| ------- |
| |
| - The release is a fresh cut of cpython's `4a686504`__. All changes to :mod:`mock` |
| from that commit and before are included in this release along with the |
| subsequent changes listed below. |
| |
| __ https://github.com/python/cpython/commit/4a686504eb2bbf69adf78077458508a7ba131667 |
| |
| - Issue #37972: Subscripts to the `unittest.mock.call` objects now receive |
| the same chaining mechanism as any other custom attributes, so that the |
| following usage no longer raises a `TypeError`: |
| |
| call().foo().__getitem__('bar') |
| |
| Patch by blhsing |
| |
| - Issue #38839: Fix some unused functions in tests. Patch by Adam Johnson. |
| |
| - Issue #39485: Fix a bug in :func:`unittest.mock.create_autospec` that |
| would complain about the wrong number of arguments for custom descriptors |
| defined in an extension module returning functions. |
| |
| - Issue #39082: Allow AsyncMock to correctly patch static/class methods |
| |
| - Issue #38093: Fixes AsyncMock so it doesn't crash when used with |
| AsyncContextManagers or AsyncIterators. |
| |
| - Issue #38859: AsyncMock now returns StopAsyncIteration on the exaustion of |
| a side_effects iterable. Since PEP-479 its Impossible to raise a |
| StopIteration exception from a coroutine. |
| |
| - Issue #38163: Child mocks will now detect their type as either synchronous |
| or asynchronous, asynchronous child mocks will be AsyncMocks and |
| synchronous child mocks will be either MagicMock or Mock (depending on |
| their parent type). |
| |
| - Issue #38473: Use signature from inner mock for autospecced methods |
| attached with :func:`unittest.mock.attach_mock`. Patch by Karthikeyan |
| Singaravelan. |
| |
| - Issue #38136: Changes AsyncMock call count and await count to be two |
| different counters. Now await count only counts when a coroutine has been |
| awaited, not when it has been called, and vice-versa. Update the |
| documentation around this. |
| |
| - Issue #37555: Fix `NonCallableMock._call_matcher` returning tuple instead |
| of `_Call` object when `self._spec_signature` exists. Patch by Elizabeth |
| Uselton |
| |
| - Issue #37251: Remove `__code__` check in AsyncMock that incorrectly |
| evaluated function specs as async objects but failed to evaluate classes |
| with `__await__` but no `__code__` attribute defined as async objects. |
| |
| - Issue #38669: Raise :exc:`TypeError` when passing target as a string with |
| :meth:`unittest.mock.patch.object`. |
| |
| - Issue #25597: Ensure, if ``wraps`` is supplied to |
| :class:`unittest.mock.MagicMock`, it is used to calculate return values |
| for the magic methods instead of using the default return values. Patch by |
| Karthikeyan Singaravelan. |
| |
| - Issue #38108: Any synchronous magic methods on an AsyncMock now return a |
| MagicMock. Any asynchronous magic methods on a MagicMock now return an |
| AsyncMock. |
| |
| - Issue #21478: Record calls to parent when autospecced object is attached |
| to a mock using :func:`unittest.mock.attach_mock`. Patch by Karthikeyan |
| Singaravelan. |
| |
| - Issue #38857: AsyncMock fix for return values that are awaitable types. |
| This also covers side_effect iterable values that happend to be awaitable, |
| and wraps callables that return an awaitable type. Before these awaitables |
| were being awaited instead of being returned as is. |
| |
| - Issue #38932: Mock fully resets child objects on reset_mock(). Patch by |
| Vegard Stikbakke |
| |
| - Issue #37685: Fixed ``__eq__``, ``__lt__`` etc implementations in some |
| classes. They now return :data:`NotImplemented` for unsupported type of |
| the other operand. This allows the other operand to play role (for example |
| the equality comparison with :data:`~unittest.mock.ANY` will return |
| ``True``). |
| |
| - Issue #37212: :func:`unittest.mock.call` now preserves the order of |
| keyword arguments in repr output. Patch by Karthikeyan Singaravelan. |
| |
| - Issue #37828: Fix default mock name in |
| :meth:`unittest.mock.Mock.assert_called` exceptions. Patch by Abraham |
| Toriz Cruz. |
| |
| - Issue #36871: Improve error handling for the assert_has_calls and |
| assert_has_awaits methods of mocks. Fixed a bug where any errors |
| encountered while binding the expected calls to the mock's spec were |
| silently swallowed, leading to misleading error output. |
| |
| - Issue #21600: Fix :func:`mock.patch.stopall` to stop active patches that |
| were created with :func:`mock.patch.dict`. |
| |
| - Issue #38161: Removes _AwaitEvent from AsyncMock. |
| |
| - Issue #36871: Ensure method signature is used instead of constructor |
| signature of a class while asserting mock object against method calls. |
| Patch by Karthikeyan Singaravelan. |
| |
| 3.0.5 |
| ----- |
| |
| - Issue #31855: :func:`unittest.mock.mock_open` results now respects the |
| argument of read([size]). Patch contributed by Rémi Lapeyre. |
| |
| 3.0.4 |
| ----- |
| |
| - Include the license, readme and changelog in the source distribution. |
| |
| 3.0.3 |
| ----- |
| |
| - Fixed patching of dictionaries, when specifying the target with a |
| unicode on Python 2. |
| |
| 3.0.2 |
| ----- |
| |
| - Add missing ``funcsigs`` dependency on Python 2. |
| |
| 3.0.1 |
| ----- |
| |
| - Fix packaging issue where ``six`` was missed as a dependency. |
| |
| 3.0.0 |
| ----- |
| |
| - Issue #35226: Recursively check arguments when testing for equality of |
| :class:`unittest.mock.call` objects and add note that tracking of |
| parameters used to create ancestors of mocks in ``mock_calls`` is not |
| possible. |
| |
| - Issue #31177: Fix bug that prevented using :meth:`reset_mock |
| <unittest.mock.Mock.reset_mock>` on mock instances with deleted attributes |
| |
| - Issue #26704: Added test demonstrating double-patching of an instance |
| method. Patch by Anthony Sottile. |
| |
| - Issue #35500: Write expected and actual call parameters on separate lines |
| in :meth:`unittest.mock.Mock.assert_called_with` assertion errors. |
| Contributed by Susan Su. |
| |
| - Issue #35330: When a :class:`Mock` instance was used to wrap an object, if |
| `side_effect` is used in one of the mocks of it methods, don't call the |
| original implementation and return the result of using the side effect the |
| same way that it is done with return_value. |
| |
| - Issue #30541: Add new function to seal a mock and prevent the |
| automatically creation of child mocks. Patch by Mario Corchero. |
| |
| - Issue #35022: :class:`unittest.mock.MagicMock` now supports the |
| ``__fspath__`` method (from :class:`os.PathLike`). |
| |
| - Issue #33516: :class:`unittest.mock.MagicMock` now supports the |
| ``__round__`` magic method. |
| |
| - Issue #35512: :func:`unittest.mock.patch.dict` used as a decorator with |
| string target resolves the target during function call instead of during |
| decorator construction. Patch by Karthikeyan Singaravelan. |
| |
| - Issue #36366: Calling ``stop()`` on an unstarted or stopped |
| :func:`unittest.mock.patch` object will now return `None` instead of |
| raising :exc:`RuntimeError`, making the method idempotent. Patch |
| byKarthikeyan Singaravelan. |
| |
| - Issue #35357: Internal attributes' names of unittest.mock._Call and |
| unittest.mock.MagicProxy (name, parent & from_kall) are now prefixed with |
| _mock_ in order to prevent clashes with widely used object attributes. |
| Fixed minor typo in test function name. |
| |
| - Issue #20239: Allow repeated assignment deletion of |
| :class:`unittest.mock.Mock` attributes. Patch by Pablo Galindo. |
| |
| - Issue #35082: Don't return deleted attributes when calling dir on a |
| :class:`unittest.mock.Mock`. |
| |
| - Issue #0: Improved an error message when mock assert_has_calls fails. |
| |
| - Issue #23078: Add support for :func:`classmethod` and :func:`staticmethod` |
| to :func:`unittest.mock.create_autospec`. Initial patch by Felipe Ochoa. |
| |
| - Issue #21478: Calls to a child function created with |
| :func:`unittest.mock.create_autospec` should propagate to the parent. |
| Patch by Karthikeyan Singaravelan. |
| |
| - Issue #36598: Fix ``isinstance`` check for Mock objects with spec when the |
| code is executed under tracing. Patch by Karthikeyan Singaravelan. |
| |
| - Issue #32933: :func:`unittest.mock.mock_open` now supports iteration over |
| the file contents. Patch by Tony Flury. |
| |
| - Issue #21269: Add ``args`` and ``kwargs`` properties to mock call objects. |
| Contributed by Kumar Akshay. |
| |
| - Issue #17185: Set ``__signature__`` on mock for :mod:`inspect` to get |
| signature. Patch by Karthikeyan Singaravelan. |
| |
| - Issue #35047: ``unittest.mock`` now includes mock calls in exception |
| messages if ``assert_not_called``, ``assert_called_once``, or |
| ``assert_called_once_with`` fails. Patch by Petter Strandmark. |
| |
| - Issue #28380: unittest.mock Mock autospec functions now properly support |
| assert_called, assert_not_called, and assert_called_once. |
| |
| - Issue #28735: Fixed the comparison of mock.MagickMock with mock.ANY. |
| |
| - Issue #20804: The unittest.mock.sentinel attributes now preserve their |
| identity when they are copied or pickled. |
| |
| - Issue #28961: Fix unittest.mock._Call helper: don't ignore the name parameter |
| anymore. Patch written by Jiajun Huang. |
| |
| - Issue #26750: unittest.mock.create_autospec() now works properly for |
| subclasses of property() and other data descriptors. |
| |
| - Issue #21271: New keyword only parameters in reset_mock call. |
| |
| - Issue #26807: mock_open 'files' no longer error on readline at end of file. |
| Patch from Yolanda Robla. |
| |
| - Issue #25195: Fix a regression in mock.MagicMock. _Call is a subclass of |
| tuple (changeset 3603bae63c13 only works for classes) so we need to |
| implement __ne__ ourselves. Patch by Andrew Plummer. |
| |
| 2.0.0 and earlier |
| ----------------- |
| |
| - Issue #26323: Add Mock.assert_called() and Mock.assert_called_once() |
| methods to unittest.mock. Patch written by Amit Saha. |
| |
| - Issue #22138: Fix mock.patch behavior when patching descriptors. Restore |
| original values after patching. Patch contributed by Sean McCully. |
| |
| - Issue #24857: Comparing call_args to a long sequence now correctly returns a |
| boolean result instead of raising an exception. Patch by A Kaptur. |
| |
| - Issue #23004: mock_open() now reads binary data correctly when the type of |
| read_data is bytes. Initial patch by Aaron Hill. |
| |
| - Issue #21750: mock_open.read_data can now be read from each instance, as it |
| could in Python 3.3. |
| |
| - Issue #18622: unittest.mock.mock_open().reset_mock would recurse infinitely. |
| Patch from Nicola Palumbo and Laurent De Buyst. |
| |
| - Issue #23661: unittest.mock side_effects can now be exceptions again. This |
| was a regression vs Python 3.4. Patch from Ignacio Rossi |
| |
| - Issue #23310: Fix MagicMock's initializer to work with __methods__, just |
| like configure_mock(). Patch by Kasia Jachim. |
| |
| - Issue #23568: Add rdivmod support to MagicMock() objects. |
| Patch by Håkan Lövdahl. |
| |
| - Issue #23581: Add matmul support to MagicMock. Patch by Håkan Lövdahl. |
| |
| - Issue #23326: Removed __ne__ implementations. Since fixing default __ne__ |
| implementation in issue #21408 they are redundant. *** NOT BACKPORTED *** |
| |
| - Issue #21270: We now override tuple methods in mock.call objects so that |
| they can be used as normal call attributes. |
| |
| - Issue #21256: Printout of keyword args should be in deterministic order in |
| a mock function call. This will help to write better doctests. |
| |
| - Issue #21262: New method assert_not_called for Mock. |
| It raises AssertionError if the mock has been called. |
| |
| - Issue #21238: New keyword argument `unsafe` to Mock. It raises |
| `AttributeError` incase of an attribute startswith assert or assret. |
| |
| - Issue #21239: patch.stopall() didn't work deterministically when the same |
| name was patched more than once. |
| |
| - Issue #21222: Passing name keyword argument to mock.create_autospec now |
| works. |
| |
| - Issue #17826: setting an iterable side_effect on a mock function created by |
| create_autospec now works. Patch by Kushal Das. |
| |
| - Issue #17826: setting an iterable side_effect on a mock function created by |
| create_autospec now works. Patch by Kushal Das. |
| |
| - Issue #20968: unittest.mock.MagicMock now supports division. |
| Patch by Johannes Baiter. |
| |
| - Issue #20189: unittest.mock now no longer assumes that any object for |
| which it could get an inspect.Signature is a callable written in Python. |
| Fix courtesy of Michael Foord. |
| |
| - Issue #17467: add readline and readlines support to mock_open in |
| unittest.mock. |
| |
| - Issue #17015: When it has a spec, a Mock object now inspects its signature |
| when matching calls, so that arguments can be matched positionally or |
| by name. |
| |
| - Issue #15323: improve failure message of Mock.assert_called_once_with |
| |
| - Issue #14857: fix regression in references to PEP 3135 implicit __class__ |
| closure variable (Reopens issue #12370) |
| |
| - Issue #14295: Add unittest.mock |