|
| 1 | +5.0.0 |
| 2 | +----- |
| 3 | + |
| 4 | +- gh-98624: Add a mutex to unittest.mock.NonCallableMock to protect |
| 5 | + concurrent access to mock attributes. |
| 6 | + |
| 7 | +- bpo-43478: Mocks can no longer be used as the specs for other Mocks. As a |
| 8 | + result, an already-mocked object cannot have an attribute mocked using |
| 9 | + `autospec=True` or be the subject of a `create_autospec(...)` call. This |
| 10 | + can uncover bugs in tests since these Mock-derived Mocks will always pass |
| 11 | + certain tests (e.g. isinstance) and builtin assert functions (e.g. |
| 12 | + assert_called_once_with) will unconditionally pass. |
| 13 | + |
| 14 | +- bpo-45156: Fixes infinite loop on :func:`unittest.mock.seal` of mocks |
| 15 | + created by :func:`~unittest.create_autospec`. |
| 16 | + |
| 17 | +- bpo-41403: Make :meth:`mock.patch` raise a :exc:`TypeError` with a |
| 18 | + relevant error message on invalid arg. Previously it allowed a cryptic |
| 19 | + :exc:`AttributeError` to escape. |
| 20 | + |
| 21 | +- gh-91803: Fix an error when using a method of objects mocked with |
| 22 | + :func:`unittest.mock.create_autospec` after it was sealed with |
| 23 | + :func:`unittest.mock.seal` function. |
| 24 | + |
| 25 | +- bpo-41877: AttributeError for suspected misspellings of assertions on |
| 26 | + mocks are now pointing out that the cause are misspelled assertions and |
| 27 | + also what to do if the misspelling is actually an intended attribute name. |
| 28 | + The unittest.mock document is also updated to reflect the current set of |
| 29 | + recognised misspellings. |
| 30 | + |
| 31 | +- bpo-43478: Mocks can no longer be provided as the specs for other Mocks. |
| 32 | + As a result, an already-mocked object cannot be passed to `mock.Mock()`. |
| 33 | + This can uncover bugs in tests since these Mock-derived Mocks will always |
| 34 | + pass certain tests (e.g. isinstance) and builtin assert functions (e.g. |
| 35 | + assert_called_once_with) will unconditionally pass. |
| 36 | + |
| 37 | +- bpo-45010: Remove support of special method ``__div__`` in |
| 38 | + :mod:`unittest.mock`. It is not used in Python 3. |
| 39 | + |
| 40 | +- gh-84753: :func:`inspect.iscoroutinefunction` now properly returns |
| 41 | + ``True`` when an instance of :class:`unittest.mock.AsyncMock` is passed to |
| 42 | + it. This makes it consistent with behavior of |
| 43 | + :func:`asyncio.iscoroutinefunction`. Patch by Mehdi ABAAKOUK. |
| 44 | + |
| 45 | +- bpo-46852: Remove the undocumented private ``float.__set_format__()`` |
| 46 | + method, previously known as ``float.__setformat__()`` in Python 3.7. Its |
| 47 | + docstring said: "You probably don't want to use this function. It exists |
| 48 | + mainly to be used in Python's test suite." Patch by Victor Stinner. |
| 49 | + |
| 50 | +- gh-98086: Make sure ``patch.dict()`` can be applied on async functions. |
| 51 | + |
| 52 | +- gh-100287: Fix the interaction of :func:`unittest.mock.seal` with |
| 53 | + :class:`unittest.mock.AsyncMock`. |
| 54 | + |
| 55 | +- gh-83076: Instantiation of ``Mock()`` and ``AsyncMock()`` is now 3.8x |
| 56 | + faster. |
| 57 | + |
| 58 | +- bpo-41877: A check is added against misspellings of autospect, auto_spec |
| 59 | + and set_spec being passed as arguments to patch, patch.object and |
| 60 | + create_autospec. |
| 61 | + |
1 | 62 | 4.0.3
|
2 | 63 | -----
|
3 | 64 |
|
|
0 commit comments