Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update mock to 5.1.0 #189

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

pyup-bot
Copy link
Collaborator

This PR updates mock from 4.0.2 to 5.1.0.

Changelog

5.1.0

-----

- bpo-44185: :func:`unittest.mock.mock_open` will call the :func:`close`
method of the file handle mock when it is exiting from the context
manager. Patch by Samet Yaslan.

- gh-94924: :func:`unittest.mock.create_autospec` now properly returns
coroutine functions compatible with :func:`inspect.iscoroutinefunction`

- bpo-17013: Add ``ThreadingMock`` to :mod:`unittest.mock` that can be used
to create Mock objects that can wait until they are called. Patch by
Karthikeyan Singaravelan and Mario Corchero.

- bpo-41768: :mod:`unittest.mock` speccing no longer calls class properties.
Patch by Melanie Witt.

5.0.2

-----

- gh-102978: Fixes :func:`unittest.mock.patch` not enforcing function
signatures for methods decorated with ``classmethod`` or
``staticmethod`` when patch is called with ``autospec=True``.

- gh-103329: Regression tests for the behaviour of
``unittest.mock.PropertyMock`` were added.

5.0.1

-----

- gh-100740: Fix ``unittest.mock.Mock`` not respecting the spec for
attribute names prefixed with ``assert``.

- gh-100690: ``Mock`` objects which are not unsafe will now raise an
``AttributeError`` when accessing an attribute that matches the name of an
assertion but without the prefix ``assert_``, e.g. accessing
``called_once`` instead of ``assert_called_once``. This is in addition to
this already happening for accessing attributes with prefixes ``assert``,
``assret``, ``asert``, ``aseert``, and ``assrt``.

- gh-96127: ``inspect.signature`` was raising ``TypeError`` on call with
mock objects. Now it correctly returns ``(*args, **kwargs)`` as infered
signature.

5.0.0

-----

- gh-98624: Add a mutex to unittest.mock.NonCallableMock to protect
concurrent access to mock attributes.

- bpo-43478: Mocks can no longer be used as the specs for other Mocks. As a
result, an already-mocked object cannot have an attribute mocked using
`autospec=True` or be the subject of a `create_autospec(...)` call. This
can uncover bugs in tests since these Mock-derived Mocks will always pass
certain tests (e.g. isinstance) and builtin assert functions (e.g.
assert_called_once_with) will unconditionally pass.

- bpo-45156: Fixes infinite loop on :func:`unittest.mock.seal` of mocks
created by :func:`~unittest.create_autospec`.

- bpo-41403: Make :meth:`mock.patch` raise a :exc:`TypeError` with a
relevant error message on invalid arg. Previously it allowed a cryptic
:exc:`AttributeError` to escape.

- gh-91803: Fix an error when using a method of objects mocked with
:func:`unittest.mock.create_autospec` after it was sealed with
:func:`unittest.mock.seal` function.

- bpo-41877: AttributeError for suspected misspellings of assertions on
mocks are now pointing out that the cause are misspelled assertions and
also what to do if the misspelling is actually an intended attribute name.
The unittest.mock document is also updated to reflect the current set of
recognised misspellings.

- bpo-43478: Mocks can no longer be provided as the specs for other Mocks.
As a result, an already-mocked object cannot be passed to `mock.Mock()`.
This can uncover bugs in tests since these Mock-derived Mocks will always
pass certain tests (e.g. isinstance) and builtin assert functions (e.g.
assert_called_once_with) will unconditionally pass.

- bpo-45010: Remove support of special method ``__div__`` in
:mod:`unittest.mock`. It is not used in Python 3.

- gh-84753: :func:`inspect.iscoroutinefunction` now properly returns
``True`` when an instance of :class:`unittest.mock.AsyncMock` is passed to
it.  This makes it consistent with behavior of
:func:`asyncio.iscoroutinefunction`.  Patch by Mehdi ABAAKOUK.

- bpo-46852: Remove the undocumented private ``float.__set_format__()``
method, previously known as ``float.__setformat__()`` in Python 3.7. Its
docstring said: "You probably don't want to use this function. It exists
mainly to be used in Python's test suite." Patch by Victor Stinner.

- gh-98086: Make sure ``patch.dict()`` can be applied on async functions.

- gh-100287: Fix the interaction of :func:`unittest.mock.seal` with
:class:`unittest.mock.AsyncMock`.

- gh-83076: Instantiation of ``Mock()`` and ``AsyncMock()`` is now 3.8x
faster.

- bpo-41877: A check is added against misspellings of autospect, auto_spec
and set_spec being passed as arguments to patch, patch.object and
create_autospec.

4.0.3

-----

- bpo-42532: Remove unexpected call of ``__bool__`` when passing a
``spec_arg`` argument to a Mock.

- bpo-39966: Revert bpo-25597. :class:`unittest.mock.MagicMock` with
wraps' set uses default return values for magic methods.

- bpo-41877: Mock objects which are not unsafe will now raise an
AttributeError if an attribute with the prefix asert, aseert, or assrt is
accessed, in addition to this already happening for the prefixes assert or
assret.

- bpo-40126: Fixed reverting multiple patches in unittest.mock. Patcher's
``__exit__()`` is now never called if its ``__enter__()`` is failed.
Returning true from ``__exit__()`` silences now the exception.
Links

@pyup-bot pyup-bot mentioned this pull request Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant