)]}'
{
  "commit": "7f5f64396f65e3a08cbe3dba2dba6f8773b99bb9",
  "tree": "08677357e54f6c043e10051730b53c0c9b4150f4",
  "parents": [
    "7e179cf0080f650ec1f3399dd2023d2f48752ea1"
  ],
  "author": {
    "name": "dependabot[bot]",
    "email": "49699333+dependabot[bot]@users.noreply.github.com",
    "time": "Fri Oct 23 17:05:40 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Oct 23 17:05:40 2026 +0000"
  },
  "message": "build(deps): bump pytest-mock from 3.15.1 to 3.17.0 in /dev (#4328)\n\nBumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from\n3.15.1 to 3.17.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.17.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-17\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/641\"\u003e#641\u003c/a\u003e:\nFailures of mock assertions such as \u003ccode\u003eassert_called_with\u003c/code\u003e are\nagain reported only once, instead of two or three times with the\noriginal error from the \u003ccode\u003emock\u003c/code\u003e module chained before\nthem.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/642\"\u003e#642\u003c/a\u003e:\nMock assertion failures no longer show misleading introspection when\nthey are not about the arguments of the last call:\n\u003ccode\u003eassert_called\u003c/code\u003e, \u003ccode\u003eassert_called_once\u003c/code\u003e,\n\u003ccode\u003eassert_not_called\u003c/code\u003e, \u003ccode\u003eassert_any_call\u003c/code\u003e, their\n\u003ccode\u003eawait\u003c/code\u003e counterparts, and\n\u003ccode\u003eassert_called_once_with\u003c/code\u003e/\u003ccode\u003eassert_awaited_once_with\u003c/code\u003e\nwhen the mock was not called (awaited) exactly once. The introspection\nalso no longer reports arguments passed by position versus by keyword as\ndifferent for autospecced mocks, and no longer shows empty\n\u003ccode\u003eArgs:\u003c/code\u003e/\u003ccode\u003eKwargs:\u003c/code\u003e sections when assertion\nrewriting is not available.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/643\"\u003e#643\u003c/a\u003e:\n\u003ccode\u003eassert_has_calls\u003c/code\u003e and \u003ccode\u003eassert_has_awaits\u003c/code\u003e\nfailures no longer show pytest introspection, which compared the\nexpected and actual calls position by position and so reported\ndifferences between unrelated calls. The mock\u0027s own message, listing the\nexpected and actual calls, is still shown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-17\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/617\"\u003e#617\u003c/a\u003e:\nFixed \u003ccode\u003eassert_has_calls\u003c/code\u003e raising \u003ccode\u003eValueError\u003c/code\u003e\ninstead of \u003ccode\u003eAssertionError\u003c/code\u003e (or showing misleading\nintrospection) when the expected calls are plain tuples rather than\n\u003ccode\u003ecall(...)\u003c/code\u003e objects, such as \u003ccode\u003e(args, kwargs)\u003c/code\u003e\nentries of another mock\u0027s \u003ccode\u003ecall_args_list\u003c/code\u003e,\n\u003ccode\u003e(args,)\u003c/code\u003e, \u003ccode\u003e(kwargs,)\u003c/code\u003e, \u003ccode\u003e(name, args)\u003c/code\u003e\nor \u003ccode\u003e(name, kwargs)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/621\"\u003e#621\u003c/a\u003e:\nFixed \u003ccode\u003emocker.stop()\u003c/code\u003e sometimes stopping the wrong mock, for\nexample with mocks from \u003ccode\u003emocker.create_autospec\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/621\"\u003e#621\u003c/a\u003e:\n\u003ccode\u003emocker.stop()\u003c/code\u003e now undoes the most recent patch first when\nthe same object is used in several patches.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/623\"\u003e#623\u003c/a\u003e:\nFixed misleading introspection in \u003ccode\u003eassert_has_awaits\u003c/code\u003e\nfailures, and\n\u003ccode\u003eassert_has_calls\u003c/code\u003e/\u003ccode\u003eassert_has_awaits\u003c/code\u003e raising\n\u003ccode\u003eIndexError\u003c/code\u003e instead of \u003ccode\u003eAssertionError\u003c/code\u003e when\n\u003ccode\u003ecalls\u003c/code\u003e is passed by keyword.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/624\"\u003e#624\u003c/a\u003e:\nClear \u003ccode\u003espy_return_iter\u003c/code\u003e after a spied synchronous or\nasynchronous function raises, matching \u003ccode\u003espy_return\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/627\"\u003e#627\u003c/a\u003e:\nDocument \u003ccode\u003easync_stub\u003c/code\u003e await assertions and the distinction\nbetween call and await tracking.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/629\"\u003e#629\u003c/a\u003e:\nFixed \u003ccode\u003emocker.resetall()\u003c/code\u003e skipping the mocks patched with\n\u003ccode\u003emocker.patch.multiple()\u003c/code\u003e, both the ones it creates and the\nones passed explicitly.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/630\"\u003e#630\u003c/a\u003e:\n\u003ccode\u003emocker.resetall()\u003c/code\u003e now also resets \u003ccode\u003espy_return\u003c/code\u003e\nand \u003ccode\u003espy_exception\u003c/code\u003e of spies, like it already did for\n\u003ccode\u003espy_return_list\u003c/code\u003e and \u003ccode\u003espy_return_iter\u003c/code\u003e, and no\nlonger overwrites attributes with these names on mocks that are not\nspies.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/633\"\u003e#633\u003c/a\u003e:\nFixed spies on \u003ccode\u003eclassmethod\u003c/code\u003e, \u003ccode\u003estaticmethod\u003c/code\u003e,\nbuiltins and classes returning a \u003ccode\u003eMagicMock\u003c/code\u003e instead of\ncalling the spied code after\n\u003ccode\u003emocker.resetall(side_effect\u003dTrue)\u003c/code\u003e. Resetting a spy\u0027s\n\u003ccode\u003eside_effect\u003c/code\u003e now goes back to calling the spied code, also\nclearing any \u003ccode\u003eside_effect\u003c/code\u003e set on the spy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.16.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-09-27\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/604\"\u003e#604\u003c/a\u003e:\nFixed \u003ccode\u003eduplicate_iterators\u003dTrue\u003c/code\u003e for async functions spied\nwith \u003ccode\u003emocker.spy\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/611\"\u003e#611\u003c/a\u003e:\nFixed async mock assertion introspection to use awaited arguments\ninstead of the latest call\u0027s arguments.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/pull/606\"\u003e#606\u003c/a\u003e:\n\u003ccode\u003emocker.resetall(return_value\u003dTrue, side_effect\u003dTrue)\u003c/code\u003e now\nalso applies to non-callable mocks, such as those returned by\n\u003ccode\u003emocker.create_autospec(SomeClass, instance\u003dTrue)\u003c/code\u003e.\nPreviously both arguments were silently ignored for them.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/547\"\u003e#547\u003c/a\u003e:\nAdded \u003ccode\u003eSpyType\u003c/code\u003e for annotating \u003ccode\u003emocker.spy\u003c/code\u003e\nresults.\u003c/li\u003e\n\u003cli\u003eDropped support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/147\"\u003e#147\u003c/a\u003e:\nRemoved handling of \u003ccode\u003eRuntimeError: stop called on unstarted\npatcher\u003c/code\u003e, which can no longer occur in the supported Python\nversions.\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.17.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-17\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-mock/issues/641)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/641\u0026gt;\u003c/code\u003e_:\nFailures of mock assertions such as \u003ccode\u003eassert_called_with\u003c/code\u003e are\nagain reported only once, instead of two or three times with the\noriginal error from the \u003ccode\u003emock\u003c/code\u003e module chained before\nthem.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#642](https://github.com/pytest-dev/pytest-mock/issues/642)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/642\u0026gt;\u003c/code\u003e_: Mock\nassertion failures no longer show misleading introspection when they are\nnot about the arguments of the last call: \u003ccode\u003eassert_called\u003c/code\u003e,\n\u003ccode\u003eassert_called_once\u003c/code\u003e, \u003ccode\u003eassert_not_called\u003c/code\u003e,\n\u003ccode\u003eassert_any_call\u003c/code\u003e, their \u003ccode\u003eawait\u003c/code\u003e counterparts, and\n\u003ccode\u003eassert_called_once_with\u003c/code\u003e/\u003ccode\u003eassert_awaited_once_with\u003c/code\u003e\nwhen the mock was not called (awaited) exactly once. The introspection\nalso no longer reports arguments passed by position versus by keyword as\ndifferent for autospecced mocks, and no longer shows empty\n\u003ccode\u003eArgs:\u003c/code\u003e/\u003ccode\u003eKwargs:\u003c/code\u003e sections when assertion\nrewriting is not available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#643](https://github.com/pytest-dev/pytest-mock/issues/643)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/643\u0026gt;\u003c/code\u003e_:\n\u003ccode\u003eassert_has_calls\u003c/code\u003e and \u003ccode\u003eassert_has_awaits\u003c/code\u003e\nfailures no longer show pytest introspection, which compared the\nexpected and actual calls position by position and so reported\ndifferences between unrelated calls. The mock\u0027s own message, listing the\nexpected and actual calls, is still shown.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.16.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-10-17\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#617](https://github.com/pytest-dev/pytest-mock/issues/617)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/617\u0026gt;\u003c/code\u003e_:\nFixed \u003ccode\u003eassert_has_calls\u003c/code\u003e raising \u003ccode\u003eValueError\u003c/code\u003e\ninstead of \u003ccode\u003eAssertionError\u003c/code\u003e (or showing misleading\nintrospection) when the expected calls are plain tuples rather than\n\u003ccode\u003ecall(...)\u003c/code\u003e objects, such as \u003ccode\u003e(args, kwargs)\u003c/code\u003e\nentries of another mock\u0027s \u003ccode\u003ecall_args_list\u003c/code\u003e,\n\u003ccode\u003e(args,)\u003c/code\u003e, \u003ccode\u003e(kwargs,)\u003c/code\u003e, \u003ccode\u003e(name, args)\u003c/code\u003e\nor \u003ccode\u003e(name, kwargs)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#621](https://github.com/pytest-dev/pytest-mock/issues/621)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/621\u0026gt;\u003c/code\u003e_:\nFixed \u003ccode\u003emocker.stop()\u003c/code\u003e sometimes stopping the wrong mock, for\nexample with mocks from \u003ccode\u003emocker.create_autospec\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#621](https://github.com/pytest-dev/pytest-mock/issues/621)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/621\u0026gt;\u003c/code\u003e_:\n\u003ccode\u003emocker.stop()\u003c/code\u003e now undoes the most recent patch first when\nthe same object is used in several patches.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#623](https://github.com/pytest-dev/pytest-mock/issues/623)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/623\u0026gt;\u003c/code\u003e_:\nFixed misleading introspection in \u003ccode\u003eassert_has_awaits\u003c/code\u003e\nfailures, and\n\u003ccode\u003eassert_has_calls\u003c/code\u003e/\u003ccode\u003eassert_has_awaits\u003c/code\u003e raising\n\u003ccode\u003eIndexError\u003c/code\u003e instead of \u003ccode\u003eAssertionError\u003c/code\u003e when\n\u003ccode\u003ecalls\u003c/code\u003e is passed by keyword.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#624](https://github.com/pytest-dev/pytest-mock/issues/624)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/624\u0026gt;\u003c/code\u003e_:\nClear \u003ccode\u003espy_return_iter\u003c/code\u003e after a spied synchronous or\nasynchronous function raises, matching \u003ccode\u003espy_return\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#627](https://github.com/pytest-dev/pytest-mock/issues/627)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/627\u0026gt;\u003c/code\u003e_:\nDocument \u003ccode\u003easync_stub\u003c/code\u003e await assertions and the distinction\nbetween call and await tracking.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#629](https://github.com/pytest-dev/pytest-mock/issues/629)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/629\u0026gt;\u003c/code\u003e_:\nFixed \u003ccode\u003emocker.resetall()\u003c/code\u003e skipping the mocks patched with\n\u003ccode\u003emocker.patch.multiple()\u003c/code\u003e, both the ones it creates and the\nones passed explicitly.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#630](https://github.com/pytest-dev/pytest-mock/issues/630)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/630\u0026gt;\u003c/code\u003e_:\n\u003ccode\u003emocker.resetall()\u003c/code\u003e now also resets \u003ccode\u003espy_return\u003c/code\u003e\nand \u003ccode\u003espy_exception\u003c/code\u003e of spies, like it already did for\n\u003ccode\u003espy_return_list\u003c/code\u003e and \u003ccode\u003espy_return_iter\u003c/code\u003e, and no\nlonger overwrites attributes with these names on mocks that are not\nspies.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#633](https://github.com/pytest-dev/pytest-mock/issues/633)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/633\u0026gt;\u003c/code\u003e_:\nFixed spies on \u003ccode\u003eclassmethod\u003c/code\u003e, \u003ccode\u003estaticmethod\u003c/code\u003e,\nbuiltins and classes returning a \u003ccode\u003eMagicMock\u003c/code\u003e instead of\ncalling the spied code after\n\u003ccode\u003emocker.resetall(side_effect\u003dTrue)\u003c/code\u003e. Resetting a spy\u0027s\n\u003ccode\u003eside_effect\u003c/code\u003e now goes back to calling the spied code, also\nclearing any \u003ccode\u003eside_effect\u003c/code\u003e set on the spy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.16.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2026-09-27\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#604](https://github.com/pytest-dev/pytest-mock/issues/604)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/604\u0026gt;\u003c/code\u003e_:\nFixed \u003ccode\u003eduplicate_iterators\u003dTrue\u003c/code\u003e for async functions spied\nwith \u003ccode\u003emocker.spy\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#611](https://github.com/pytest-dev/pytest-mock/issues/611)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/611\u0026gt;\u003c/code\u003e_:\nFixed async mock assertion introspection to use awaited arguments\ninstead of the latest call\u0027s arguments.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#606](https://github.com/pytest-dev/pytest-mock/issues/606)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/pull/606\u0026gt;\u003c/code\u003e_:\n\u003ccode\u003emocker.resetall(return_value\u003dTrue, side_effect\u003dTrue)\u003c/code\u003e now\nalso applies to non-callable mocks, such as those returned by\n\u003ccode\u003emocker.create_autospec(SomeClass, instance\u003dTrue)\u003c/code\u003e.\nPreviously both arguments were silently ignored for them.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#547](https://github.com/pytest-dev/pytest-mock/issues/547)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/issues/547\u0026gt;\u003c/code\u003e_:\nAdded \u003ccode\u003eSpyType\u003c/code\u003e for annotating \u003ccode\u003emocker.spy\u003c/code\u003e\nresults.\u003c/li\u003e\n\u003cli\u003eDropped support for EOL Python 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#147](https://github.com/pytest-dev/pytest-mock/issues/147)\n\u0026lt;https://github.com/pytest-dev/pytest-mock/issues/147\u0026gt;\u003c/code\u003e_:\nRemoved handling of \u003ccode\u003eRuntimeError: stop called on unstarted\npatcher\u003c/code\u003e, which can no longer occur in the supported Python\nversions.\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.15.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/5c2f207ca7098dde996f9bedd06e596e39b6246b\"\u003e\u003ccode\u003e5c2f207\u003c/code\u003e\u003c/a\u003e\nRelease 3.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/96252715fad4a0dfec1997103cc231bc1f133616\"\u003e\u003ccode\u003e9625271\u003c/code\u003e\u003c/a\u003e\nBump the minor version for releases that change existing behavior\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/34b87aeeef1d2a85be5ce4fadb0c6bc4a033c40a\"\u003e\u003ccode\u003e34b87ae\u003c/code\u003e\u003c/a\u003e\nDrop introspection from assert_has_calls and assert_has_awaits (\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/643\"\u003e#643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/866520f2d339c7649af56ac227ca67ed36b1e92e\"\u003e\u003ccode\u003e866520f\u003c/code\u003e\u003c/a\u003e\nOnly show introspection for failures about the call arguments (\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/5ab41c143c57842456caad0029082e919fa6a95d\"\u003e\u003ccode\u003e5ab41c1\u003c/code\u003e\u003c/a\u003e\nDo not chain the original mock error to wrapped assertion failures (\u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/641\"\u003e#641\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/1916b14db224b893edf18251f26a38487eb0d6a6\"\u003e\u003ccode\u003e1916b14\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/635\"\u003e#635\u003c/a\u003e\nfrom nicoddemus/docs-contributing-resetall\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/212fcd903aeb685a3b39875be82fc84ff58ebc56\"\u003e\u003ccode\u003e212fcd9\u003c/code\u003e\u003c/a\u003e\nDocument resetall, the changelog format and running tests with tox\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/9374b2c3e38e3bbc2e04328f7026ae3680f0476f\"\u003e\u003ccode\u003e9374b2c\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/634\"\u003e#634\u003c/a\u003e\nfrom pytest-dev/release-3.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/fab730daf4a4cfc260d8656b0467503131535a00\"\u003e\u003ccode\u003efab730d\u003c/code\u003e\u003c/a\u003e\nRelease 3.16.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/commit/d26d41bb01e99de5c0b59156c667d46985b03470\"\u003e\u003ccode\u003ed26d41b\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/pytest-dev/pytest-mock/issues/627\"\u003e#627\u003c/a\u003e\nfrom xiehuanyi/docs/async-stub-awaits-20261012-r2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/pytest-dev/pytest-mock/compare/v3.15.1...v3.17.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dpytest-mock\u0026package-manager\u003duv\u0026previous-version\u003d3.15.1\u0026new-version\u003d3.17.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\n\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "97667272c181a81ac8cc5e044b1025375e71c194",
      "old_mode": 33188,
      "old_path": "dev/requirements.txt",
      "new_id": "79eb91ae37b870f0aa9c954b1c110fcad6eb51aa",
      "new_mode": 33188,
      "new_path": "dev/requirements.txt"
    },
    {
      "type": "modify",
      "old_id": "dfc07d9c90eb79c6f9d9bfe9e4db83469ec3046d",
      "old_mode": 33188,
      "old_path": "dev/uv.lock",
      "new_id": "a08329a7c3f22c74dd748e27dfc0901632aa47bc",
      "new_mode": 33188,
      "new_path": "dev/uv.lock"
    }
  ]
}
