This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| pytest-mock | ==1.13.0
-> ==3.10.0
| | | | |
:warning: MAJOR MAJOR MAJOR :warning:
Release Notes
pytest-dev/pytest-mock
Compare Source
- Added new
mocker.stop(m)
method to stop specific mocker.patch
or mocker.spy
calls (#319
_).
.. _#̴https://github.com/pytest-dev/pytest-mock/pull/319ull/319
Compare Source
- Expose
NonCallableMagicMock
via the mocker
fixture (#318
_).
.. _#̴https://github.com/pytest-dev/pytest-mock/pull/318ull/318
Compare Source
- Fixed
AsyncMock
support for Python 3.7+ in mocker.async_stub
(#302
_).
.. _#̴https://github.com/pytest-dev/pytest-mock/pull/302ull/302
Compare Source
- Fixed regression caused by an explicit
mock
dependency in the code (#298
_).
.. _#̴https://github.com/pytest-dev/pytest-mock/issues/298ues/298
Compare Source
- Add
MockerFixture.async_mock
method. Thanks @PerchunPak
_ for the PR (#296
_).
.. _@PerchunPak: https://github.com/PerchunPak
.. [https://github.com/pytest-dev/pytest-mock/pull/296](https://togithub.com/pytest-dev/pytest-mock/pull/296)-mock/pull/296
Compare Source
- Python 3.10 now officially supported.
- Dropped support for Python 3.6.
Compare Source
- Fix
mocker.resetall()
when using mocker.spy()
(#237
). Thanks @blaxter
for the report and @shadycuz
_ for the PR.
.. _@blaxter: https://github.com/blaxter
.. _@shadycuz: https://github.com/shadychttps://github.com/pytest-dev/pytest-mock/issues/237ytest-mock/issues/237
Compare Source
-
pytest-mock no longer supports Python 3.5.
-
Correct type annotations for mocker.patch.object
to also include the string form.
Thanks @plannigan
_ for the PR (#235
_).
-
reset_all
now supports return_value
and side_effect
keyword arguments. Thanks @alex-marty
_ for the PR (#214
_).
.. _@alex-marty: https://github.com/alex-marty
.. _@plannigan: https://github.com/plannighttps://github.com/pytest-dev/pytest-mock/pull/214/pytest-mockhttps://github.com/pytest-dev/pytest-mock/pull/235est-dev/pytest-mock/pull/235
Compare Source
- Use
inspect.getattr_static
instead of resorting to object.__getattribute__
magic. This should better comply with objects which implement a custom descriptor
protocol. Thanks @yesthesoup
_ for the PR (#224
_).
.. _@yesthesoup: https://github.com/yesthesoup
.. [https://github.com/pytest-dev/pytest-mock/pull/224](https://togithub.com/pytest-dev/pytest-mock/pull/224)-mock/pull/224
Compare Source
-
Now all patch functions will emit a warning instead of raising a ValueError
when used
as a context-manager. Thanks @iforapsy
_ for the PR (#221
_).
-
Additionally, mocker.patch.context_manager
is available when the user intends to mock
a context manager (for example threading.Lock
object), which will not emit that
warning.
.. _@iforapsy: https://github.com/iforapsy
.. [https://github.com/pytest-dev/pytest-mock/pull/221](https://togithub.com/pytest-dev/pytest-mock/pull/221)-mock/pull/221
Compare Source
-
Add mock.seal
alias to the mocker
fixture (#211
). Thanks @coiax
for the PR.
-
Fixed spying on exceptions not covered by the Exception
superclass (#215
), like KeyboardInterrupt
-- PR #216
by @webknjaz
_.
Before the fix, both spy_return
and spy_exception
were always assigned to None
whenever such an exception happened. And after this fix,
spy_exception
is set to a correct value of an exception
that has actually happened.
.. _@coiax: https://github.com/coiax
.. _@webknjaz: https://github.com/sponsors/webknjhttps://github.com/pytest-dev/pytest-mock/pull/211/pytest-mockhttps://github.com/pytest-dev/pytest-mock/issues/215t-dev/pytesthttps://github.com/pytest-dev/pytest-mock/pull/216com/pytest-dev/pytest-mock/pull/216
Compare Source
-
Introduce MockFixture
as an alias to MockerFixture
.
Before 3.3.0
, the fixture class was named MockFixture
, but was renamed to MockerFixture
to better
match the mocker
fixture. While not officially part of the API, it was later discovered that this broke
the code of some users which already imported pytest_mock.MockFixture
for type annotations, so we
decided to reintroduce the name as an alias.
Note however that this is just a stop gap measure, and new code should use MockerFixture
for type annotations.
-
Improved typing for MockerFixture.patch
(#201
). Thanks @srittau
for the PR.
.. _@srittau: https://github.com/srittau
.. [https://github.com/pytest-dev/pytest-mock/pull/201](https://togithub.com/pytest-dev/pytest-mock/pull/201)-mock/pull/201
Compare Source
-
pytest-mock
now includes inline type annotations and exposes them to user programs. The mocker
fixture returns pytest_mock.MockerFixture
, which can be used to annotate your tests:
.. code-block:: python
from pytest_mock import MockerFixture
def test_foo(mocker: MockerFixture) -> None:
...
The type annotations were developed against mypy version 0.782
, the
minimum version supported at the moment. If you run into an error that you believe to be incorrect, please open an issue.
Many thanks to @staticdev
_ for providing the initial patch (#199
_).
.. _@staticdev: https://github.com/staticdev
.. [https://github.com/pytest-dev/pytest-mock/pull/199](https://togithub.com/pytest-dev/pytest-mock/pull/199)-mock/pull/199
Compare Source
-
AsyncMock <https://docs.python.org/3/library/unittest.mock.html#unittest.mock.AsyncMock>
__ is now exposed in mocker
and supports provides assertion introspection similar to Mock
objects.
Added by @tirkarthi
_ in #197
_.
.. _@tirkarthi: https://github.com/tirkarthi
.. [https://github.com/pytest-dev/pytest-mock/pull/197](https://togithub.com/pytest-dev/pytest-mock/pull/197)-mock/pull/197
Compare Source
- Fixed performance regression caused by the
ValueError
raised
when mocker
is used as context manager (#191
_).
.. _#̴https://github.com/pytest-dev/pytest-mock/issues/191ues/191
Compare Source
.. _@scorphus: https://github.com/scorphus
.. [https://github.com/pytest-dev/pytest-mock/pull/182](https://togithub.com/pytest-dev/pytest-mock/pull/182)-mock/pull/182
Compare Source
-
Python 2.7 and 3.4 are no longer supported. Users using pip 9
or later will install
a compatible version automatically.
-
mocker.spy
now also works with async def
functions (#179
). Thanks @frankie567
for the PR!
.. _#̴https://github.com/pytest-dev/pytest-mock/issues/179ues/179
.. _@frankie567: https://github.com/frankie567
Compare Source
Breaking Changes
++++++++++++++++
-
mocker.spy
attributes for tracking returned values and raised exceptions of its spied functions
are now called spy_return
and spy_exception
, instead of reusing the existing
MagicMock
attributes return_value
and side_effect
.
Version 1.13
introduced a serious regression: after a spied function using mocker.spy
raises an exception, further calls to the spy will not call the spied function,
always raising the first exception instead: assigning to side_effect
causes
unittest.mock
to behave this way (#175
_).
-
The deprecated mock
alias to the mocker
fixture has finally been removed.
.. _#̴https://github.com/pytest-dev/pytest-mock/issues/175ues/175
Configuration
📅 Schedule: Branch creation - "after 10:30 before 18:00 every weekday except after 13:00 before 14:00" in timezone America/Lima, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
dependencies