Skip to content

chore(deps): bump the python-maintenance group across 1 directory with 10 updates - #28

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/python-maintenance-1317768f1d
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/python-maintenance-1317768f1d

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 21, 2026 •

Copy link
Copy Markdown

Bumps the python-maintenance group with 10 updates in the / directory:

Package From To
docker 7.1.0 7.2.0
click 8.4.1 8.5.0
paramiko 5.0.0 5.1.0
cryptography 50.0.0 50.0.2
boto3 1.43.108 1.43.114
b2sdk 2.13.0 2.13.1
google-auth-oauthlib 1.4.0 1.5.0
pytest 9.0.3 9.1.1
pytest-mock 3.15.1 3.17.0
ruff 0.15.15 0.17.1

Updates docker from 7.1.0 to 7.2.0

Release notes

Sourced from docker's releases.

7.2.0

Upgrade Notes

  • docker.from_env() now honors the active Docker CLI context when DOCKER_HOST is not set.
    • This means the client may connect to the daemon selected by DOCKER_CONTEXT or the current context in ~/.docker/config.json, matching Docker CLI behavior more closely.
    • If your application relied on the previous default connection behavior, set DOCKER_HOST explicitly, set DOCKER_CONTEXT=default, or pass use_context=False to DockerClient.from_env().
  • Added docker.from_context() / DockerClient.from_context() for explicitly creating a client from a Docker CLI context.

Features

  • Added support for Docker contexts when creating the default client
  • Added subpath support for volumes

Bugfixes

  • Fixed exec_run documentation for the stream parameter
  • Fixed image loading to avoid depending on the deprecated JSONMessage.error field
  • Preserved the rotated unlock key in swarm integration tests
  • Fixed SSL certificate generation in tests
  • Fixed IPv6 integration tests by explicitly enabling IPv6 where required

Miscellaneous

  • Updated tests for newer Docker Engine behavior
  • CI and build updates

What's Changed

New Contributors

... (truncated)

Commits
  • 5ad5327 Merge pull request #3415 from vvoland/update-changelog
  • d242230 docs: 7.2.0 changelog
  • ba01cc7 Merge pull request #3401 from ebriney/client-from-context
  • ae5dfe9 Merge pull request #3410 from vvoland/fix-flaky
  • aa99999 integration/swarm: Preserve rotated unlock key
  • 059d371 Merge pull request #3407 from vvoland/fix-arm64
  • 9b4b9b8 gha: Add arm64 integration CI
  • 9e9f8ff Skip tests incompatible with host architecture
  • e0542d9 Merge pull request #3408 from vvoland/gha-pin
  • 578a11d gha: Pin to digests
  • Additional commits viewable in compare view

Updates click from 8.4.1 to 8.5.0

Release notes

Sourced from click's releases.

8.5.0

This is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.

We encourage everyone to upgrade. You can read more about our Version Support Policy on our website.

PyPI: https://pypi.org/project/click/8.5.0/ Changes: https://click.palletsprojects.com/page/changes/#version-8-5-0 Milestone https://github.com/pallets/click/milestone/33

  • Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers. Use _FOO_BAR_COMPLETE=powershell_source foo-bar to generate the completion script. #2672 #3637
  • Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. #2986 #3505
  • {class}Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available. #2983 #3473
  • confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them, matching echo(). This stripping was lost in 8.4.0 when #2969 began writing the prompt with input() directly. #3572 #3653
  • {class}Path with allow_dash=True no longer triggers a BytesWarning, an error under python -bb, when checking a value against the - convention. #2877 #3642
  • Add {func}custom_version_option, a --version option whose output is produced by a callback, covering cases {func}version_option intentionally does not. The feature set of {func}version_option is now frozen; see [discussion #3527](https://github.com/pallets/click/discussions/3527). #3581
  • style() and secho() no longer silently drop the 256-color index 0 (black) passed as fg or bg, and now validate color arguments. Invalid colors raise a ValueError instead of a TypeError. #3677
  • The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing. The new name is visible in {meth}Command.to_info_dict output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). #2819 #3678
  • unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. #3681
  • Streamline Option flag handling: the flag-kind, type, lazy-default and validation steps in Option.__init__ move into focused helpers, and flag_value and default keep their unset sentinel at construction (resolved lazily on read) so is UNSET reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dict now resolves default=True on a feature switch to its flag_value, matching what the function receives at call

... (truncated)

Changelog

Sourced from click's changelog.

Version 8.5.0

Released 2026-08-24

  • Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing bash, zsh, and fish completers. Use _FOO_BAR_COMPLETE=powershell_source foo-bar to generate the completion script. {issue}2672 {pr}3637
  • Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. {issue}2986 {pr}3505
  • {class}Argument accepts a help parameter, and help output includes a Positional arguments section when argument help is available. {issue}2983 {pr}3473
  • confirm() and prompt() strip ANSI color and style codes from the prompt when the output stream does not support them, matching echo(). This stripping was lost in 8.4.0 when {pr}2969 began writing the prompt with input() directly. {issue}3572 {pr}3653
  • Fix test failures when using pytest >= 9.1. {pr}3656
  • {class}Path with allow_dash=True no longer triggers a BytesWarning, an error under python -bb, when checking a value against the - convention. {issue}2877 {pr}3642
  • Add {func}custom_version_option, a --version option whose output is produced by a callback, covering cases {func}version_option intentionally does not. The feature set of {func}version_option is now frozen; see [discussion #3527](https://github.com/pallets/click/discussions/3527). {pr}3581
  • style() and secho() no longer silently drop the 256-color index 0 (black) passed as fg or bg, and now validate color arguments. Invalid colors raise a ValueError instead of a TypeError. {pr}3677
  • The automatic help option stores its value under the reserved name _click_default_help instead of help, so a parameter named help no longer breaks parsing. The new name is visible in {meth}Command.to_info_dict output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). {issue}2819 {pr}3678
  • unstyle and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. {pr}3681
  • Streamline Option flag handling: the flag-kind, type, lazy-default and validation steps in Option.__init__ move into focused helpers, and flag_value and default keep their unset sentinel at construction (resolved lazily on read) so is UNSET reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}Parameter.to_info_dict now resolves default=True on a feature switch to its flag_value, matching what the function receives at call time. {pr}3641
  • {func}get_binary_stream and {func}get_text_stream are deprecated and will be removed in Click 9.0. {issue}3481 {pr}3695
  • The following click.utils names were never intentionally public and are now private (_-prefixed). The old names remain available with a DeprecationWarning until Click 9.0: LazyFile, KeepOpenFile,

... (truncated)

Commits
  • 8b19813 Release version 8.5.0
  • 2c8cd3a Add FAQ entry about UnicodeEncodeError on Windows (#3778)
  • 131c86a Add FAQ entry about UnicodeEncodeError on Windows
  • e1fd594 Add support of pathlib.Path to edit (#3781)
  • a1d8785 Add support of pathlib.Path to edit
  • 2103e15 Forward all user's parameters set in PAGER and improve flag detection (#3777)
  • a6256bf Forwards all user's parameters set in PAGER
  • 61b69e9 Resolve the pager command once, in _pager_contextmanager (#3776)
  • 9835b0f Resolve the pager command once, in _pager_contextmanager
  • f36d58b Refactor pager stream handling (#3767)
  • Additional commits viewable in compare view

Updates paramiko from 5.0.0 to 5.1.0

Commits

Updates cryptography from 50.0.0 to 50.0.2

Changelog

Sourced from cryptography's changelog.

50.0.2 - 2026-09-30


* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.3.
* Added ``abi3.abi3t`` wheels for free-threaded CPython 3.15 and later.
* Updated to PyO3 0.29.2, which fixes building ``cryptography`` on Cygwin and
  MSYS2.

.. _v50-0-1:

50.0.1 - 2026-08-25

  • Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 4.0.2.

.. _v50-0-0:

Commits

Updates boto3 from 1.43.108 to 1.43.114

Commits
  • 432fa17 Merge branch 'release-1.43.114'
  • bf4aed7 Bumping version to 1.43.114
  • fa3e3f2 Add changelog entries from botocore
  • 69ed308 Merge branch 'release-1.43.113'
  • 3abaa49 Merge branch 'release-1.43.113' into develop
  • 741f8d9 Bumping version to 1.43.113
  • ad1c6b5 Add changelog entries from botocore
  • 9ca5e36 Merge branch 'release-1.43.112'
  • f5581ba Merge branch 'release-1.43.112' into develop
  • 6f065c3 Bumping version to 1.43.112
  • Additional commits viewable in compare view

Updates b2sdk from 2.13.0 to 2.13.1

Release notes

Sourced from b2sdk's releases.

2.13.1

Fixed

  • Retry uploads after a B2 request-timeout response (HTTP 408). (#605)
  • Fixed honoring the Retry-After header on 5xx service errors. (#606)

Infrastructure

  • Added a repository-owned sdkharness customer-health contract for version-matched simulator testing. (#610)
  • Moved sdkharness conformance and resilience assertions into this repository so they execute against the exact b2sdk checkout. (#612)
  • Document in the sdkharness README how to run one check against the standalone simulator, and list every proxy variable the leaf checks scrub.
  • Make the sdkharness leaf-check unit tests ignore __pycache__ and other non-leaf entries.
  • Repository-owned conformance checks lock.bypass_governance and lock.per_file_retention accept the 401 access_denied that B2 answers for a delete of a governance-locked version without bypass, and still fail if the delete is allowed or refused for an unrelated reason.
  • Repository-owned sdkharness conformance and resilience checks now report an authorization error, access denied, a connection error against the simulator, or an SDK ImportError as FAIL instead of COULD-NOT-RUN/SKIP, strip proxy environment variables so a stray proxy cannot change a result, and no longer refer to files that exist only in the central harness.
  • Repository-owned sdkharness conformance and resilience leaf checks now refuse to run unless they are given a loopback simulator URL, and always use the fixed simulator credential, so running one directly can no longer reach staging or production with ambient B2_* credentials.
  • The repository-owned resilience dispatcher refuses a simulator that has already served requests, instead of letting a leaf count an earlier scenario's journal entries (for example upload.cap_exceeded_403 reporting extra b2_upload_file calls) and report a false SDK failure.
Changelog

Sourced from b2sdk's changelog.

2.13.1 - 2026-10-04

Fixed

  • Retry uploads after a B2 request-timeout response (HTTP 408). (#605)
  • Fixed honoring the Retry-After header on 5xx service errors. (#606)

Infrastructure

  • Added a repository-owned sdkharness customer-health contract for version-matched simulator testing. (#610)
  • Moved sdkharness conformance and resilience assertions into this repository so they execute against the exact b2sdk checkout. (#612)
  • Document in the sdkharness README how to run one check against the standalone simulator, and list every proxy variable the leaf checks scrub.
  • Make the sdkharness leaf-check unit tests ignore __pycache__ and other non-leaf entries.
  • Repository-owned conformance checks lock.bypass_governance and lock.per_file_retention accept the 401 access_denied that B2 answers for a delete of a governance-locked version without bypass, and still fail if the delete is allowed or refused for an unrelated reason.
  • Repository-owned sdkharness conformance and resilience checks now report an authorization error, access denied, a connection error against the simulator, or an SDK ImportError as FAIL instead of COULD-NOT-RUN/SKIP, strip proxy environment variables so a stray proxy cannot change a result, and no longer refer to files that exist only in the central harness.
  • Repository-owned sdkharness conformance and resilience leaf checks now refuse to run unless they are given a loopback simulator URL, and always use the fixed simulator credential, so running one directly can no longer reach staging or production with ambient B2_* credentials.
  • The repository-owned resilience dispatcher refuses a simulator that has already served requests, instead of letting a leaf count an earlier scenario's journal entries (for example upload.cap_exceeded_403 reporting extra b2_upload_file calls) and report a false SDK failure.
Commits
  • d32620d release 2.13.1
  • c83daa5 docs(sdkharness): run one check against the standalone simulator (#625)
  • fbda229 test(sdkharness): refuse a resilience run on a simulator that already served ...
  • e4117e3 Make sdkharness Python checks fail instead of skip on real errors (#623)
  • 408b698 test(sdkharness): leaf-check unit tests skip pycache and other non-leaf e...
  • 58efa84 test(sdkharness): lock.bypass_governance and lock.per_file_retention accept B...
  • 7e14503 Merge pull request #619 from Backblaze/honor-retry-after-on-5xx
  • 5b89c9d Merge pull request #618 from Backblaze/retry-408-request-timeout
  • 4e0346a fix: expose HTTP request timeout exception
  • 39f08e3 fix: safely handle non-numeric Retry-After
  • Additional commits viewable in compare view

Updates google-auth-oauthlib from 1.4.0 to 1.5.0

Release notes

Sourced from google-auth-oauthlib's releases.

google-shopping-merchant-promotions: v1.5.0

1.5.0 (2026-10-01)

Features

  • declare Python3.15 support (8775794)

google-shopping-merchant-ordertracking: v1.5.0

1.5.0 (2026-10-01)

Features

  • declare Python3.15 support (8775794)

google-shopping-merchant-notifications: v1.5.0

1.5.0 (2026-10-01)

Features

  • declare Python3.15 support (8775794)

google-shopping-merchant-lfp: v1.5.0

1.5.0 (2026-10-01)

Features

  • declare Python3.15 support (8775794)

google-shopping-merchant-issueresolution: v1.5.0

1.5.0 (2026-10-01)

Features

  • declare Python3.15 support (8775794)

google-shopping-merchant-conversions: v1.5.0

1.5.0 (2026-10-01)

Features

  • declare Python3.15 support (8775794)
Changelog

Sourced from google-auth-oauthlib's changelog.

1.5.0 (2022-07-11)

Features

Bug Fixes

1.4.8 (2022-05-24)

Bug Fixes

  • add hardcoded IAM references temporarily (#209) (5dc99d2)

1.4.7 (2022-04-12)

Bug Fixes

  • add markdown header if it is missing (#203) (ccd53bd)

1.4.6 (2022-04-06)

Bug Fixes

  • support parsing summary docstring that is not well formed (#200) (a1b362d)

1.4.5 (2022-03-18)

Bug Fixes

1.4.4 (2022-03-03)

Bug Fixes

  • parse docstring that come without summaries (#187) (8282604)

1.4.3 (2022-02-15)

... (truncated)

Commits
  • d6bed5a chore: release main (#18464)
  • 78ff458 feat(gapic-generator): add schema support for resumable uploads (#18480)
  • af2100a tests: add showcase to golden files (#18479)
  • e1d306a fix: resolve error where google/longrunning/operations.proto is missing (#18477)
  • 7871fa9 fix(gapic-generator): init mock response in version header test (#18488)
  • 0b488a3 feat(bigtable): Reroute Mutations Batcher to use data client (#18200)
  • 30b4f44 fix(google-auth-oauthlib): prevent ipv6 address reuse (#18463)
  • 1d9f468 chore(main): release google-auth 2.59.0 (#18465)
  • c7c133a chore(bigtable): Added an internal batch completed callback to the data clien...
  • 8cb3c6a perf(spanner): optimize query option merging and prevent in-place mutation (#...
  • Additional commits viewable in compare view

Updates pytest from 9.0.3 to 9.1.1

Release notes

Sourced from pytest's releases.

9.1.1

pytest 9.1.1 (2026-06-19)

Bug fixes

  • #14220: Fixed a logic bug in pytest.RaisesGroup which would might cause it to display incorrect "It matches FooError() which was paired with BarError" messages.
  • #14591: Fixed a regression in pytest 9.1.0 which caused overriding a parametrized fixture with an indirect @​pytest.mark.parametrize to fail with "duplicate parametrization of '<fixture name>'".
  • #14606: Fixed list-item typing errors from mypy in @pytest.mark.parametrize <pytest.mark.parametrize ref> argvalues parameter.
  • #14608: Fixed a regression in pytest 9.1.0 where conftest.py files located in <invocation dir>/test* were no longer loaded as initial conftests when invoked without arguments. This could cause certain hooks (like pytest_addoption) in these files to not fire.

9.1.0

pytest 9.1.0 (2026-06-13)

Removals and backward incompatible breaking changes

  • #14533: When using --doctest-modules, autouse fixtures with module, package or session scope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.

    If this is undesirable, move the fixture definition to a conftest.py file if possible.

    Technical explanation for those interested: When using --doctest-modules, pytest possibly collects Python modules twice, once as pytest.Module and once as a DoctestModule (depending on the configuration). Due to improvements in pytest's fixture implementation, if e.g. the DoctestModule collects a fixture, it is now visible to it only, and not to the Module. This means that both need to register the fixtures independently.

Deprecations (removal in next major release)

  • #10819: Added a deprecation warning for class-scoped fixtures defined as instance methods (without @classmethod). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use @classmethod decorator instead -- by yastcher.

    See 10819 and 14011.

  • #12882: Calling request.getfixturevalue() <pytest.FixtureRequest.getfixturevalue> during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.

    See dynamic-fixture-request-during-teardown for details.

  • #13409: Using non-~collections.abc.Collection iterables (such as generators, iterators, or custom iterable objects) for the argvalues parameter in @pytest.mark.parametrize <pytest.mark.parametrize ref> and metafunc.parametrize <pytest.Metafunc.parametrize> is now deprecated.

    These iterables get exhausted after the first iteration, leading to tests getting unexpectedly skipped in cases such as running pytest.main() multiple times, using class-level parametrize decorators, or collecting tests multiple times.

    See parametrize-iterators for details and suggestions.

  • #13946: The private config.inicfg attribute is now deprecated. Use config.getini() <pytest.Config.getini> to access configuration values instead.

    See config-inicfg for more details.

  • #14004: Passing baseid to ~pytest.FixtureDef or nodeid strings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.

... (truncated)

Commits
  • cf470ec Prepare release version 9.1.1
  • e0c8ce6 Merge pull request #14625 from pytest-dev/patchback/backports/9.1.x/a07c31a97...
  • 1b82d16 Merge pull request #14624 from pytest-dev/patchback/backports/9.1.x/b375b79ec...
  • 501c4bc Merge pull request #14596 from bluetech/doc-classmethod
  • b61f588 Merge pull request #14622 from chrisburr/fix-14608-initial-conftest-test-subdir
  • 9a567e0 [automated] Update plugin list (#14617) (#14618)
  • ef8b299 Merge pull request #14620 from pytest-dev/patchback/backports/9.1.x/680f9f3ed...
  • 66abd07 Merge pull request #14220 from bysiber/fix-stale-iexp-raisesgroup
  • 79fbf93 Merge pull request #14612 from pytest-dev/patchback/backports/9.1.x/974ed48b6...
  • 0d312eb Merge pull request #14611 from bluetech/parametrize-argvalues-typing
  • Additional commits viewable in compare view

Updates pytest-mock from 3.15.1 to 3.17.0

Release notes

Sourced from pytest-mock's releases.

v3.17.0

2026-10-17

  • #641: Failures of mock assertions such as assert_called_with are again reported only once, instead of two or three times with the original error from the mock module chained before them.
  • #642: Mock assertion failures no longer show misleading introspection when they are not about the arguments of the last call: assert_called, assert_called_once, assert_not_called, assert_any_call, their await counterparts, and assert_called_once_with/assert_awaited_once_with when the mock was not called (awaited) exactly once. The introspection also no longer reports arguments passed by position versus by keyword as different for autospecced mocks, and no longer shows empty Args:/Kwargs: sections when assertion rewriting is not available.
  • #643: assert_has_calls and assert_has_awaits failures no longer show pytest introspection, which compared the expected and actual calls position by position and so reported differences between unrelated calls. The mock's own message, listing the expected and actual calls, is still shown.

v3.16.1

2026-10-17

  • #617: Fixed assert_has_calls raising ValueError instead of AssertionError (or showing misleading introspection) when the expected calls are plain tuples rather than call(...) objects, such as (args, kwargs) entries of another mock's call_args_list, (args,), (kwargs,), (name, args) or (name, kwargs).
  • #621: Fixed mocker.stop() sometimes stopping the wrong mock, for example with mocks from mocker.create_autospec.
  • #621: mocker.stop() now undoes the most recent patch first when the same object is used in several patches.
  • #623: Fixed misleading introspection in assert_has_awaits failures, and assert_has_calls/assert_has_awaits raising IndexError instead of AssertionError when calls is passed by keyword.
  • #624: Clear spy_return_iter after a spied synchronous or asynchronous function raises, matching spy_return.
  • #627: Document async_stub await assertions and the distinction between call and await tracking.
  • #629: Fixed mocker.resetall() skipping the mocks patched with mocker.patch.multiple(), both the ones it creates and the ones passed explicitly.
  • #630: mocker.resetall() now also resets spy_return and spy_exception of spies, like it already did for spy_return_list and spy_return_iter, and no longer overwrites attributes with these names on mocks that are not spies.
  • #633: Fixed spies on classmethod, staticmethod, builtins and classes returning a MagicMock instead of calling the spied code after mocker.resetall(side_effect=True). Resetting a spy's side_effect now goes back to calling the spied code, also clearing any side_effect set on the spy.

v3.16.0

2026-09-27

  • #604: Fixed duplicate_iterators=True for async functions spied with mocker.spy.
  • #611: Fixed async mock assertion introspection to use awaited arguments instead of the latest call's arguments.
  • #606: mocker.resetall(return_value=True, side_effect=True) now also applies to non-callable mocks, such as those returned by mocker.create_autospec(SomeClass, instance=True). Previously both arguments were silently ignored for them.
  • #547: Added SpyType for annotating mocker.spy results.
  • Dropped support for EOL Python 3.9.
  • #147: Removed handling of RuntimeError: stop called on unstarted patcher, which can no longer occur in the supported Python versions.
  • Added support for Python 3.15.
Changelog

Sourced from pytest-mock's changelog.

3.17.0

2026-10-17

  • [#641](https://github.com/pytest-dev/pytest-mock/issues/641) <https://github.com/pytest-dev/pytest-mock/pull/641>_: Failures of mock assertions such as assert_called_with are again reported only once, instead of two or three times with the original error from the mock module chained before them.
  • [#642](https://github.com/pytest-dev/pytest-mock/issues/642) <https://github.com/pytest-dev/pytest-mock/pull/642>_: Mock assertion failures no longer show misleading introspection when they are not about the arguments of the last call: assert_called, assert_called_once, assert_not_called, assert_any_call, their await counterparts, and assert_called_once_with/assert_awaited_once_with when the mock was not called (awaited) exactly once. The introspection also no longer reports arguments passed by position versus by keyword as different for autospecced mocks, and no longer shows empty Args:/Kwargs: sections when assertion rewriting is not available.
  • [#643](https://github.com/pytest-dev/pytest-mock/issues/643) <https://github.com/pytest-dev/pytest-mock/pull/643>_: assert_has_calls and assert_has_awaits failures no longer show pytest introspection, which compared the expected and actual calls position by position and so reported differences between unrelated calls. The mock's own message, listing the expected and actual calls, is still shown.

3.16.1

2026-10-17

  • [#617](https://github.com/pytest-dev/pytest-mock/issues/617) <https://github.com/pytest-dev/pytest-mock/pull/617>_: Fixed assert_has_calls raising ValueError instead of AssertionError (or showing misleading introspection) when the expected calls are plain tuples rather than call(...) objects, such as (args, kwargs) entries of another mock's call_args_list, (args,), (kwargs,), (name, args) or (name, kwargs).
  • [#621](https://github.com/pytest-dev/pytest-mock/issues/621) <https://github.com/pytest-dev/pytest-mock/pull/621>_: Fixed mocker.stop() sometimes stopping the wrong mock, for example with mocks from mocker.create_autospec.
  • [#621](https://github.com/pytest-dev/pytest-mock/issues/621) <https://github.com/pytest-dev/pytest-mock/pull/621>_: mocker.stop() now undoes the most recent patch first when the same object is used in several patches.
  • [#623](https://github.com/pytest-dev/pytest-mock/issues/623) <https://github.com/pytest-dev/pytest-mock/pull/623>_: Fixed misleading introspection in assert_has_awaits failures, and assert_has_calls/assert_has_awaits raising IndexError instead of AssertionError when calls is passed by keyword.
  • [#624](https://github.com/pytest-dev/pytest-mock/issues/624) <https://github.com/pytest-dev/pytest-mock/pull/624>_: Clear spy_return_iter after a spied synchronous or asynchronous function raises, matching spy_return.
  • [#627](https://github.com/pytest-dev/pytest-mock/issues/627) <https://github.com/pytest-dev/pytest-mock/pull/627>_: Document async_stub await assertions and the distinction between call and await tracking.
  • [#629](https://github.com/pytest-dev/pytest-mock/issues/629) <https://github.com/pytest-dev/pytest-mock/pull/629>_: Fixed mocker.resetall() skipping the mocks patched with mocker.patch.multiple(), both the ones it creates and the ones passed explicitly.
  • [#630](https://github.com/pytest-dev/pytest-mock/issues/630) <https://github.com/pytest-dev/pytest-mock/pull/630>_: mocker.resetall() now also resets spy_return and spy_exception of spies, like it already did for spy_return_list and spy_return_iter, and no longer overwrites attributes with these names on mocks that are not spies.
  • [#633](https://github.com/pytest-dev/pytest-mock/issues/633) <https://github.com/pytest-dev/pytest-mock/pull/633>_: Fixed spies on classmethod, staticmethod, builtins and classes returning a MagicMock instead of calling the spied code after mocker.resetall(side_effect=True). Resetting a spy's side_effect now goes back to calling the spied code, also clearing any side_effect set on the spy.

3.16.0

2026-09-27

  • [#604](https://github.com/pytest-dev/pytest-mock/issues/604) <https://github.com/pytest-dev/pytest-mock/pull/604>_: Fixed duplicate_iterators=True for async functions spied with mocker.spy.
  • [#611](https://github.com/pytest-dev/pytest-mock/issues/611) <https://github.com/pytest-dev/pytest-mock/pull/611>_: Fixed async mock assertion introspection to use awaited arguments instead of the latest call's arguments.
  • [#606](https://github.com/pytest-dev/pytest-mock/issues/606) <https://github.com/pytest-dev/pytest-mock/pull/606>_: mocker.resetall(return_value=True, side_effect=True) now also applies to non-callable mocks, such as those returned by mocker.create_autospec(SomeClass, instance=True). Previously both arguments were silently ignored for them.
  • [#547](https://github.com/pytest-dev/pytest-mock/issues/547) <https://github.com/pytest-dev/pytest-mock/issues/547>_: Added SpyType for annotating mocker.spy results.
  • Dropped support for EOL Python 3.9.
  • [#147](https://github.com/pytest-dev/pytest-mock/issues/147) <https://github.com/pytest-dev/pytest-mock/issues/147>_: Removed handling of RuntimeError: stop called on unstarted patcher, which can no longer occur in the supported Python versions.
  • Added support for Python 3.15.
Commits

@dependabot
dependabot Bot requested a review from CruxExperts as a code owner October 21, 2026 09:31
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Oct 21, 2026
…h 10 updates

Bumps the python-maintenance group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |
| [click](https://github.com/pallets/click) | `8.4.1` | `8.5.0` |
| [paramiko](https://github.com/paramiko/paramiko) | `5.0.0` | `5.1.0` |
| [cryptography](https://github.com/pyca/cryptography) | `50.0.0` | `50.0.2` |
| [boto3](https://github.com/boto/boto3) | `1.43.108` | `1.43.114` |
| [b2sdk](https://github.com/Backblaze/b2-sdk-python) | `2.13.0` | `2.13.1` |
| [google-auth-oauthlib](https://github.com/googleapis/google-cloud-python) | `1.4.0` | `1.5.0` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.17.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.15` | `0.17.1` |



Updates `docker` from 7.1.0 to 7.2.0
- [Release notes](https://github.com/docker/docker-py/releases)
- [Commits](docker/docker-py@7.1.0...7.2.0)

Updates `click` from 8.4.1 to 8.5.0
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.md)
- [Commits](pallets/click@8.4.1...8.5.0)

Updates `paramiko` from 5.0.0 to 5.1.0
- [Commits](paramiko/paramiko@5.0.0...5.1.0)

Updates `cryptography` from 50.0.0 to 50.0.2
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@50.0.0...50.0.2)

Updates `boto3` from 1.43.108 to 1.43.114
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](boto/boto3@1.43.108...1.43.114)

Updates `b2sdk` from 2.13.0 to 2.13.1
- [Release notes](https://github.com/Backblaze/b2-sdk-python/releases)
- [Changelog](https://github.com/Backblaze/b2-sdk-python/blob/master/CHANGELOG.md)
- [Commits](Backblaze/b2-sdk-python@v2.13.0...v2.13.1)

Updates `google-auth-oauthlib` from 1.4.0 to 1.5.0
- [Release notes](https://github.com/googleapis/google-cloud-python/releases)
- [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/gcp-sphinx-docfx-yaml/CHANGELOG.md)
- [Commits](googleapis/google-cloud-python@google-auth-oauthlib-v1.4.0...google-auth-oauthlib-v1.5.0)

Updates `pytest` from 9.0.3 to 9.1.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@9.0.3...9.1.1)

Updates `pytest-mock` from 3.15.1 to 3.17.0
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest-mock@v3.15.1...v3.17.0)

Updates `ruff` from 0.15.15 to 0.17.1
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.15...0.17.1)

---
updated-dependencies:
- dependency-name: b2sdk
  dependency-version: 2.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-maintenance
- dependency-name: boto3
  dependency-version: 1.43.114
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-maintenance
- dependency-name: click
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
- dependency-name: cryptography
  dependency-version: 50.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-maintenance
- dependency-name: docker
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
- dependency-name: google-auth-oauthlib
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
- dependency-name: paramiko
  dependency-version: 5.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
- dependency-name: pytest
  dependency-version: 9.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
- dependency-name: pytest-mock
  dependency-version: 3.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
- dependency-name: ruff
  dependency-version: 0.17.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-maintenance
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/uv/python-maintenance-1317768f1d branch from 36f35eb to f10d7e3 Compare October 22, 2026 03:29
CruxExperts added a commit that referenced this pull request Oct 23, 2026
Keep terminal forms, resource summaries, failure status and cancellation controls reachable at compact sizes. Improve documentation navigation and refresh the reviewed Python and immutable CI action targets with bound dependency evidence.

Refs: #20, #28, #30

Release-Type: none
@CruxExperts

Copy link
Copy Markdown
Owner

Superseded by merged PR #31. All 51 registry package versions in the proposed lockfile are included in main, together with Ruff compatibility and B2 Retry-After test updates, validation, and documentation. The dependency update is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant