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

Fix type annotation #364

Merged
merged 4 commits into from
Jun 9, 2023
Merged

Conversation

egor43
Copy link
Contributor

@egor43 egor43 commented Jun 7, 2023

For issue #254
unittest.patch return MagicMock or AsyncMock: https://github.com/python/cpython/blob/3.11/Lib/unittest/mock.py#L1467

@egor43
Copy link
Contributor Author

egor43 commented Jun 7, 2023

@nicoddemus Do you have time to take a look?

@The-Compiler
Copy link
Member

Looking at what typeshed does, this seems to b a step in the right direction - though it breaks things on Python 3.7.

I suppose we could drop 3.7 support now, rather than introducing a conditional (given that it's EOL in 19 days)?

@egor43
Copy link
Contributor Author

egor43 commented Jun 8, 2023

I can do the same:

if sys.version_info >= (3, 8):
    _Mock: TypeAlias = MagicMock | AsyncMock
else:
    _Mock: TypeAlias = MagicMock

Would such a solution work?

@nicoddemus
Copy link
Member

nicoddemus commented Jun 8, 2023

@egor43 if your solution works, let's go with that -- while I agree we can drop Python 3.7 soon, better do so in a separate PR.

In addition could you add a changelog entry? Thanks! For version, you can use UNRELEASED.

@egor43
Copy link
Contributor Author

egor43 commented Jun 8, 2023

Thank you @nicoddemus.
Sorry I didn't quite understand about using UNRELEASED for version. Could you tell me more?

@nicoddemus
Copy link
Member

The changes for each version starts with a header, for example 3.10.0 (2022-10-05), but the next version is not released yet, so just use UNRELEASED.

@egor43
Copy link
Contributor Author

egor43 commented Jun 8, 2023

I updated the changelog and made changes to the type annotation. Could you review the changes?

@egor43
Copy link
Contributor Author

egor43 commented Jun 9, 2023

If you decide that the changes are useful and can be merged into the master branch, please let me know. If these changes are not relevant, then I will close the PR.
In any case, I thank you for taking the time to my PR.

github-merge-queue bot referenced this pull request in software-mansion/protostar Jun 19, 2023
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from
3.10.0 to 3.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.11.1</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.11.1 (2023-06-15)</h2>
<p>(This release source code is identical to <code>3.11.0</code> except
a small internal fix to deployment/CI)</p>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
<h2>3.11.0 (2023-06-15)</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/d3e73f2e93f7b93eba0a36e17e43bafd969da4fe"><code>d3e73f2</code></a>
Explicitly specify the tag name during GitHub Release</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5668efe23e01673af9905febeefd9a9791b023f4"><code>5668efe</code></a>
Update CHANGELOG for 3.11.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c9a4d13ab4e808ef02250898a79c07b2acf76f61"><code>c9a4d13</code></a>
Improve CI</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5818160717a16b7f8867d950ed60b9dc3349ec8d"><code>5818160</code></a>
Add assert_has_calls_wrapper (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/355b5aae1a1a9b3f2c17b2a6bbfde9980967bceb"><code>355b5aa</code></a>
Fix return type annotation for patch and spy (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/8ba681201488bec69f27f6e9e2a56988a01f0d1b"><code>8ba6812</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/362">#362</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/786eaaf416fed8204a8aebb29cbf71527228a9f6"><code>786eaaf</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/360">#360</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/1cb146af21ffd0b5be24703419cf4a192c4ec0ab"><code>1cb146a</code></a>
Push tag manually</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/9608e9659b1f062bb09915f3ef1c538ca7cb5c5f"><code>9608e96</code></a>
Update permissions for deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c778ee73bd516d465dca3512d099682ba32108fa"><code>c778ee7</code></a>
Fix deployment workflow (<a
href="https://github.com/pytest-dev/pytest-mock/issues/358">#358</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-mock&package-manager=pip&previous-version=3.10.0&new-version=3.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-merge-queue bot referenced this pull request in frequenz-floss/frequenz-sdk-python Jun 19, 2023
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from
3.10.0 to 3.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.11.1</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.11.1 (2023-06-15)</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/d3e73f2e93f7b93eba0a36e17e43bafd969da4fe"><code>d3e73f2</code></a>
Explicitly specify the tag name during GitHub Release</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5668efe23e01673af9905febeefd9a9791b023f4"><code>5668efe</code></a>
Update CHANGELOG for 3.11.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c9a4d13ab4e808ef02250898a79c07b2acf76f61"><code>c9a4d13</code></a>
Improve CI</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5818160717a16b7f8867d950ed60b9dc3349ec8d"><code>5818160</code></a>
Add assert_has_calls_wrapper (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/355b5aae1a1a9b3f2c17b2a6bbfde9980967bceb"><code>355b5aa</code></a>
Fix return type annotation for patch and spy (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/8ba681201488bec69f27f6e9e2a56988a01f0d1b"><code>8ba6812</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/362">#362</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/786eaaf416fed8204a8aebb29cbf71527228a9f6"><code>786eaaf</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/360">#360</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/1cb146af21ffd0b5be24703419cf4a192c4ec0ab"><code>1cb146a</code></a>
Push tag manually</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/9608e9659b1f062bb09915f3ef1c538ca7cb5c5f"><code>9608e96</code></a>
Update permissions for deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c778ee73bd516d465dca3512d099682ba32108fa"><code>c778ee7</code></a>
Fix deployment workflow (<a
href="https://github.com/pytest-dev/pytest-mock/issues/358">#358</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.1">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-mock&package-manager=pip&previous-version=3.10.0&new-version=3.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>
sbates referenced this pull request in slalombuild/secureli Jun 27, 2023
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from
3.10.0 to 3.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.11.1</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.11.1 (2023-06-15)</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/d3e73f2e93f7b93eba0a36e17e43bafd969da4fe"><code>d3e73f2</code></a>
Explicitly specify the tag name during GitHub Release</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5668efe23e01673af9905febeefd9a9791b023f4"><code>5668efe</code></a>
Update CHANGELOG for 3.11.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c9a4d13ab4e808ef02250898a79c07b2acf76f61"><code>c9a4d13</code></a>
Improve CI</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5818160717a16b7f8867d950ed60b9dc3349ec8d"><code>5818160</code></a>
Add assert_has_calls_wrapper (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/355b5aae1a1a9b3f2c17b2a6bbfde9980967bceb"><code>355b5aa</code></a>
Fix return type annotation for patch and spy (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/8ba681201488bec69f27f6e9e2a56988a01f0d1b"><code>8ba6812</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/362">#362</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/786eaaf416fed8204a8aebb29cbf71527228a9f6"><code>786eaaf</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/360">#360</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/1cb146af21ffd0b5be24703419cf4a192c4ec0ab"><code>1cb146a</code></a>
Push tag manually</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/9608e9659b1f062bb09915f3ef1c538ca7cb5c5f"><code>9608e96</code></a>
Update permissions for deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c778ee73bd516d465dca3512d099682ba32108fa"><code>c778ee7</code></a>
Fix deployment workflow (<a
href="https://github.com/pytest-dev/pytest-mock/issues/358">#358</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-mock&package-manager=pip&previous-version=3.10.0&new-version=3.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sascha Bates <sbates@users.noreply.github.com>
AlexWaygood referenced this pull request in AlexWaygood/typeshed-stats Jul 1, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [docs/MarkDown](https://github.com/Python-Markdown/markdown)
([changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/change_log/index.md))
| `==3.3.7` -> `==3.4.3` |
[![age](https://badges.renovateapi.com/packages/pypi/docs%2fMarkDown/3.4.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/docs%2fMarkDown/3.4.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/docs%2fMarkDown/3.4.3/compatibility-slim/3.3.7)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/docs%2fMarkDown/3.4.3/confidence-slim/3.3.7)](https://docs.renovatebot.com/merge-confidence/)
|
| [docs/mkdocs-material](https://github.com/squidfunk/mkdocs-material)
| `==9.1.14` -> `==9.1.17` |
[![age](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocs-material/9.1.17/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocs-material/9.1.17/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocs-material/9.1.17/compatibility-slim/9.1.14)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocs-material/9.1.17/confidence-slim/9.1.14)](https://docs.renovatebot.com/merge-confidence/)
|
| [docs/mkdocstrings](https://github.com/mkdocstrings/mkdocstrings)
([changelog](https://mkdocstrings.github.io/changelog)) | `==0.21.2` ->
`==0.22.0` |
[![age](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocstrings/0.22.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocstrings/0.22.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocstrings/0.22.0/compatibility-slim/0.21.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/docs%2fmkdocstrings/0.22.0/confidence-slim/0.21.2)](https://docs.renovatebot.com/merge-confidence/)
|
| [misc-lint/blacken-docs](https://github.com/asottile/blacken-docs)
([changelog](https://github.com/adamchainz/blacken-docs/blob/main/CHANGELOG.rst))
| `==1.13.0` -> `==1.14.0` |
[![age](https://badges.renovateapi.com/packages/pypi/misc-lint%2fblacken-docs/1.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/misc-lint%2fblacken-docs/1.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/misc-lint%2fblacken-docs/1.14.0/compatibility-slim/1.13.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/misc-lint%2fblacken-docs/1.14.0/confidence-slim/1.13.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [misc-lint/pycln](https://hadialqattan.github.io/pycln)
([source](https://github.com/hadialqattan/pycln)) | `==2.1.3` ->
`==2.1.5` |
[![age](https://badges.renovateapi.com/packages/pypi/misc-lint%2fpycln/2.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/misc-lint%2fpycln/2.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/misc-lint%2fpycln/2.1.5/compatibility-slim/2.1.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/misc-lint%2fpycln/2.1.5/confidence-slim/2.1.3)](https://docs.renovatebot.com/merge-confidence/)
|
| [misc-lint/ruff](https://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.272`
-> `==0.0.275` |
[![age](https://badges.renovateapi.com/packages/pypi/misc-lint%2fruff/0.0.275/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/misc-lint%2fruff/0.0.275/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/misc-lint%2fruff/0.0.275/compatibility-slim/0.0.272)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/misc-lint%2fruff/0.0.275/confidence-slim/0.0.272)](https://docs.renovatebot.com/merge-confidence/)
|
| [pytest/pytest](https://docs.pytest.org/en/latest/)
([source](https://github.com/pytest-dev/pytest),
[changelog](https://docs.pytest.org/en/stable/changelog.html)) |
`==7.3.1` -> `==7.4.0` |
[![age](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest/7.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest/7.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest/7.4.0/compatibility-slim/7.3.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest/7.4.0/confidence-slim/7.3.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [pytest/pytest-mock](https://github.com/pytest-dev/pytest-mock)
([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html))
| `==3.10.0` -> `==3.11.1` |
[![age](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest-mock/3.11.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest-mock/3.11.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest-mock/3.11.1/compatibility-slim/3.10.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/pytest%2fpytest-mock/3.11.1/confidence-slim/3.10.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [typecheck/mypy](https://www.mypy-lang.org/)
([source](https://github.com/python/mypy),
[changelog](https://mypy-lang.blogspot.com/)) | `==1.3.0` -> `==1.4.0` |
[![age](https://badges.renovateapi.com/packages/pypi/typecheck%2fmypy/1.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/typecheck%2fmypy/1.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/typecheck%2fmypy/1.4.0/compatibility-slim/1.3.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/typecheck%2fmypy/1.4.0/confidence-slim/1.3.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Python-Markdown/markdown (docs/MarkDown)</summary>

###
[`v3.4.3`](https://github.com/Python-Markdown/markdown/compare/3.4.2...3.4.3)

[Compare
Source](https://github.com/Python-Markdown/markdown/compare/3.4.2...3.4.3)

###
[`v3.4.2`](https://github.com/Python-Markdown/markdown/compare/3.4.1...3.4.2)

[Compare
Source](https://github.com/Python-Markdown/markdown/compare/3.4.1...3.4.2)

###
[`v3.4.1`](https://github.com/Python-Markdown/markdown/compare/3.4...3.4.1)

[Compare
Source](https://github.com/Python-Markdown/markdown/compare/3.4...3.4.1)

###
[`v3.4`](https://github.com/Python-Markdown/markdown/compare/3.3.7...3.4)

[Compare
Source](https://github.com/Python-Markdown/markdown/compare/3.3.7...3.4)

</details>

<details>
<summary>squidfunk/mkdocs-material (docs/mkdocs-material)</summary>

###
[`v9.1.17`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.17):
mkdocs-material-9.1.17

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.16...9.1.17)

- Fixed
[#&#8203;5633](https://github.com/squidfunk/mkdocs-material/issues/5633):
Code annotations with nested lists incorrectly mounted
- Fixed
[#&#8203;5628](https://github.com/squidfunk/mkdocs-material/issues/5628):
Regression in new social plugin configuration scheme

###
[`v9.1.16`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.16):
mkdocs-material-9.1.16

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.15...9.1.16)

-   Updated Indonesian translations
-   Ensure scroll bar follows color scheme of operating system

###
[`v9.1.15`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.15):
mkdocs-material-9.1.15

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.14...9.1.15)

- Fixed
[#&#8203;5566](https://github.com/squidfunk/mkdocs-material/issues/5566):
Indicate color scheme to operating system
- Fixed
[#&#8203;5565](https://github.com/squidfunk/mkdocs-material/issues/5565):
Update `Dockerfile` to latest version of base image
- Fixed
[#&#8203;5554](https://github.com/squidfunk/mkdocs-material/issues/5554):
Add additional version tags (`9`, `9.1`) to Docker image
- Fixed
[#&#8203;5536](https://github.com/squidfunk/mkdocs-material/issues/5536):
Strip tags of ARIA labels in table of contents

</details>

<details>
<summary>mkdocstrings/mkdocstrings (docs/mkdocstrings)</summary>

###
[`v0.22.0`](https://github.com/mkdocstrings/mkdocstrings/blob/HEAD/CHANGELOG.md#&#8203;0220-httpsgithubcommkdocstringsmkdocstringsreleasestag0220---2023-05-25)

[Compare
Source](https://github.com/mkdocstrings/mkdocstrings/compare/0.21.2...0.22.0)

<small>[Compare with
0.21.2](https://github.com/mkdocstrings/mkdocstrings/compare/0.21.2...0.22.0)</small>

##### Features

- Allow extensions to add templates
([cf0af05](https://github.com/mkdocstrings/mkdocstrings/commit/cf0af059eb89240eba0437de417c124389e2f20e)
by Timothée Mazzucotelli). [PR
#&#8203;569](https://github.com/mkdocstrings/mkdocstrings/pull/569)

##### Code Refactoring

- Report inventory loading errors
([2c05d78](https://github.com/mkdocstrings/mkdocstrings/commit/2c05d7854b87251e26c1a2e1810b85702ff110f3)
by Timothée Mazzucotelli). Co-authored-by: Oleh Prypin <oleh@pryp.in>

</details>

<details>
<summary>asottile/blacken-docs (misc-lint/blacken-docs)</summary>

###
[`v1.14.0`](https://github.com/asottile/blacken-docs/blob/HEAD/CHANGELOG.rst#&#8203;1140-2023-06-13)

[Compare
Source](https://github.com/asottile/blacken-docs/compare/1.13.0...1.14.0)

-   Support Python 3.12.

</details>

<details>
<summary>hadialqattan/pycln (misc-lint/pycln)</summary>

###
[`v2.1.5`](https://github.com/hadialqattan/pycln/releases/tag/v2.1.5)

[Compare
Source](https://github.com/hadialqattan/pycln/compare/v2.1.4...v2.1.5)

##### Changed

- [Widen `pathspec` version artificial lock by
@&#8203;hadialqattan](https://github.com/hadialqattan/pycln/pull/203)

###
[`v2.1.4`](https://github.com/hadialqattan/pycln/releases/tag/v2.1.4)

[Compare
Source](https://github.com/hadialqattan/pycln/compare/v2.1.3...v2.1.4)

##### Fixed

- [Detect third-party libs installed in editable mode by
@&#8203;hadialqattan](https://github.com/hadialqattan/pycln/pull/200)
- [Preserve the original line break format by @&#8203;maxbachmann &
@&#8203;hadialqattan](https://github.com/hadialqattan/pycln/pull/197)

##### Changed

- [Bump JRubics/poetry-publish from 1.16 to 1.17 by
@&#8203;dependabot\[bot\]](https://github.com/hadialqattan/pycln/pull/201)
- [Remove `pathspec` version artificial lock by
@&#8203;hadialqattan](https://github.com/hadialqattan/pycln/pull/199)
- [Bump codecov/codecov-action from 3.1.1 to 3.1.4 by
@&#8203;dependabot\[bot\]](https://github.com/hadialqattan/pycln/pull/198)
- [Bump typer from 0.7.0 to 0.9.0 by
@&#8203;dependabot\[bot\]](https://github.com/hadialqattan/pycln/pull/195)

</details>

<details>
<summary>astral-sh/ruff (misc-lint/ruff)</summary>

###
[`v0.0.275`](https://github.com/astral-sh/ruff/releases/tag/v0.0.275)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.274...v0.0.275)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.275 -->

#### What's Changed

Highlights include a 7-10x decrease in Ruff's cache size.

##### Rules

- Add support for top-level quoted annotations in RUF013 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5235](https://github.com/astral-sh/ruff/pull/5235)
- Add support for nested quoted annotations in RUF013 by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/5254](https://github.com/astral-sh/ruff/pull/5254)
- Move `compare-to-empty-string` (`PLC1901`) to nursery by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5264](https://github.com/astral-sh/ruff/pull/5264)
- Ignore Pydantic classes when evaluating `mutable-class-default`
(`RUF012`) by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5273](https://github.com/astral-sh/ruff/pull/5273)
- Allow `typing.Final` for `mutable-class-default annotations`
(`RUF012`) by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5274](https://github.com/astral-sh/ruff/pull/5274)
- Modify `deprecated-import` (`UP035`) to prefer `typing_extensions` in
some versions by [@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/5291](https://github.com/astral-sh/ruff/pull/5291)

##### Bug Fixes

- Restore existing bindings when unbinding caught exceptions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5256](https://github.com/astral-sh/ruff/pull/5256)
- Avoid including nursery rules in linter-level selectors by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5268](https://github.com/astral-sh/ruff/pull/5268)

#### New Contributors

- [@&#8203;jgberry](https://github.com/jgberry) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/5221](https://github.com/astral-sh/ruff/pull/5221)

**Full Changelog**:
astral-sh/ruff@v0.0.274...v0.0.275

###
[`v0.0.274`](https://github.com/astral-sh/ruff/releases/tag/v0.0.274)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.273...v0.0.274)

<!-- Release notes generated using configuration in .github/release.yml
at v0.0.274 -->

#### What's Changed

Follow-up release to `v0.0.273` to fix a panic in cache accesses.

##### Bug Fixes

- Use package roots rather than package members for cache initialization
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5233](https://github.com/astral-sh/ruff/pull/5233)
- Avoid `.unwrap()` on cache access by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5229](https://github.com/astral-sh/ruff/pull/5229)
- Revert change to `RUF010` to remove unnecessary `str` calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5232](https://github.com/astral-sh/ruff/pull/5232)
- Avoid erroneous RUF013 violations for quoted annotations by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5234](https://github.com/astral-sh/ruff/pull/5234)

**Full Changelog**:
astral-sh/ruff@v0.0.273...v0.0.274

###
[`v0.0.273`](https://github.com/astral-sh/ruff/releases/tag/v0.0.273)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.272...v0.0.273)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

Highlights include:

- Autofix capabilities for rules like `flake8-import-conventions`, which
require symbol renames across a file.
- Significant decrease in Ruff's cache size (e.g., a ~50% decrease for
FastAPI).
-   Dozens and dozens of bug fixes + performance improvements.

##### Rules

- \[`copyright`] Implement copyright notice detection by
[@&#8203;Ryang20718](https://github.com/Ryang20718) in
[https://github.com/astral-sh/ruff/pull/4701](https://github.com/astral-sh/ruff/pull/4701)
- \[`flake8-datetimez`] Enable UTC-import for `datetime-utc-alias` fix
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5100](https://github.com/astral-sh/ruff/pull/5100)
- \[`flake8-implicit-str-concat`] Add autofix for `ISC001` by
[@&#8203;tkukushkin](https://github.com/tkukushkin) in
[https://github.com/astral-sh/ruff/pull/4853](https://github.com/astral-sh/ruff/pull/4853)
- \[`flake8-import-conventions`] Enable autofix for unconventional
imports rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5152](https://github.com/astral-sh/ruff/pull/5152)
- \[`flake8-pyi`] Add autofix for `Set`-to-`AbstractSet` rewrite using
reference tracking by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5074](https://github.com/astral-sh/ruff/pull/5074)
- \[`flake8-pyi`] Implement PYI044 by
[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in
[https://github.com/astral-sh/ruff/pull/5021](https://github.com/astral-sh/ruff/pull/5021)
- \[`flake8-return`] Extend revised `RET504` implementation to `with`
statements by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4998](https://github.com/astral-sh/ruff/pull/4998)
- \[`flake8-return`] Implement autofix for revised `RET504` rule by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4999](https://github.com/astral-sh/ruff/pull/4999)
- \[`flake8-return`] Refactor `RET504` to only enforce
assignment-then-return pattern by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4997](https://github.com/astral-sh/ruff/pull/4997)
- \[`flake8-slots`] Add plugin, add `SLOT000`, `SLOT001` and `SLOT002`
by [@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/4909](https://github.com/astral-sh/ruff/pull/4909)
- \[`perflint`] Add `perflint` plugin, add first rule `PERF102` by
[@&#8203;qdegraaf](https://github.com/qdegraaf) in
[https://github.com/astral-sh/ruff/pull/4821](https://github.com/astral-sh/ruff/pull/4821)
- \[`pylint`] Add Pylint rule `comparison-with-itself` (`R0124`) by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/4957](https://github.com/astral-sh/ruff/pull/4957)
- \[`pyupgrade`] Add a rule to remove unnecessary parentheses in class
definitions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5032](https://github.com/astral-sh/ruff/pull/5032)
- \[`ruff`] Add a rule for static keys in dict comprehensions by
[@&#8203;rodjunger](https://github.com/rodjunger) in
[https://github.com/astral-sh/ruff/pull/4929](https://github.com/astral-sh/ruff/pull/4929)
- \[`ruff`] Add rule to disallow implicit optional with autofix by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/4831](https://github.com/astral-sh/ruff/pull/4831)
- \[`ruff`] Expand RUF008 to all classes, but to a new code (RUF012) by
[@&#8203;adampauls](https://github.com/adampauls) in
[https://github.com/astral-sh/ruff/pull/4390](https://github.com/astral-sh/ruff/pull/4390)
- \[`ruff`] Remove unannotated attributes from RUF008 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5049](https://github.com/astral-sh/ruff/pull/5049)
- \[`ruff`] Upgrade explicit-type-conversion rule (`RUF010`) to remove
unnecessary `str` calls by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4971](https://github.com/astral-sh/ruff/pull/4971)

##### Settings

- Option (`-o`/`--output-file`) to write output to a file by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/4950](https://github.com/astral-sh/ruff/pull/4950)
- Add JSON Lines (NDJSON) message serialization by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/astral-sh/ruff/pull/5048](https://github.com/astral-sh/ruff/pull/5048)
- Add rule documentation URL to JSON output by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5187](https://github.com/astral-sh/ruff/pull/5187)

##### Caching

- Only use a single cache file per Python package by
[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in
[https://github.com/astral-sh/ruff/pull/5117](https://github.com/astral-sh/ruff/pull/5117)
- Open cache files in parallel by
[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in
[https://github.com/astral-sh/ruff/pull/5120](https://github.com/astral-sh/ruff/pull/5120)

##### Jupyter

- Add support for auto-fix in Jupyter notebooks by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/4665](https://github.com/astral-sh/ruff/pull/4665)
- Add roundtrip support for Jupyter notebook by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/5028](https://github.com/astral-sh/ruff/pull/5028)

##### Bug Fixes

- Handle decorators in class-parenthesis-modifying rules by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5034](https://github.com/astral-sh/ruff/pull/5034)
- Allow re-assignments to `__all__` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4967](https://github.com/astral-sh/ruff/pull/4967)
- Handled dict and set inside f-string
([#&#8203;4249](https://github.com/astral-sh/ruff/issues/4249)) by
[@&#8203;DavideCanton](https://github.com/DavideCanton) in
[https://github.com/astral-sh/ruff/pull/4563](https://github.com/astral-sh/ruff/pull/4563)
- Support concatenated string key removals by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4976](https://github.com/astral-sh/ruff/pull/4976)
- Respect 'is not' operators split across newlines by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4977](https://github.com/astral-sh/ruff/pull/4977)
- Parenthesize expressions prior to lexing in F632 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5001](https://github.com/astral-sh/ruff/pull/5001)
- Ignore pyproject.toml for adding noqa directives by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/5013](https://github.com/astral-sh/ruff/pull/5013)
- Support 'reason' argument to `pytest.fail` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5040](https://github.com/astral-sh/ruff/pull/5040)
- Allow `async with` in `redefined-loop-name` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5125](https://github.com/astral-sh/ruff/pull/5125)
- Skip `DJ008` enforcement in stub files by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5139](https://github.com/astral-sh/ruff/pull/5139)
- Detect continuations at start-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5173](https://github.com/astral-sh/ruff/pull/5173)
- Fix allowed-ellipsis detection by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5174](https://github.com/astral-sh/ruff/pull/5174)
- Remove continuations before trailing semicolons by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5199](https://github.com/astral-sh/ruff/pull/5199)
- Support parenthesized expressions when splitting compound assertions
by [@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5219](https://github.com/astral-sh/ruff/pull/5219)
- Use phf for confusables to reduce llvm lines by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/4926](https://github.com/astral-sh/ruff/pull/4926)
- Allow private accesses within special dunder methods by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4968](https://github.com/astral-sh/ruff/pull/4968)
- Support concatenated literals in format-literals by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/4974](https://github.com/astral-sh/ruff/pull/4974)
- Fix line numbers in source frames by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/astral-sh/ruff/pull/4984](https://github.com/astral-sh/ruff/pull/4984)
- Suggest combining async with statements by
[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in
[https://github.com/astral-sh/ruff/pull/5022](https://github.com/astral-sh/ruff/pull/5022)
- Improve `TypedDict` conversion logic for shadowed builtins and dunder
methods by [@&#8203;charliermarsh](https://github.com/charliermarsh)
in
[https://github.com/astral-sh/ruff/pull/5038](https://github.com/astral-sh/ruff/pull/5038)
- Support glob patterns in pep8\_naming ignore-names by
[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in
[https://github.com/astral-sh/ruff/pull/5024](https://github.com/astral-sh/ruff/pull/5024)
- Respect all `__all__` definitions for docstring visibility by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5052](https://github.com/astral-sh/ruff/pull/5052)
- Don't treat annotations as resolved in forward references by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5060](https://github.com/astral-sh/ruff/pull/5060)
- Consider ignore-names in all pep8 naming rules by
[@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) in
[https://github.com/astral-sh/ruff/pull/5079](https://github.com/astral-sh/ruff/pull/5079)
- Ignore `reimplemented-builtin` if using `await` by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/5101](https://github.com/astral-sh/ruff/pull/5101)
- Allow space in filename for powershell + windows + python module by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/5115](https://github.com/astral-sh/ruff/pull/5115)
- Don't treat straight imports of **future** as `__future__` imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5128](https://github.com/astral-sh/ruff/pull/5128)
- Remove continuations when deleting statements by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/5198](https://github.com/astral-sh/ruff/pull/5198)
- Fix corner case involving terminal backslash after fixing `W293` by
[@&#8203;evanrittenhouse](https://github.com/evanrittenhouse) in
[https://github.com/astral-sh/ruff/pull/5172](https://github.com/astral-sh/ruff/pull/5172)
- Fix subprocess.run on Windows Python 3.7 by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/5220](https://github.com/astral-sh/ruff/pull/5220)

#### New Contributors

- [@&#8203;rodjunger](https://github.com/rodjunger) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/4929](https://github.com/astral-sh/ruff/pull/4929)
- [@&#8203;DavideCanton](https://github.com/DavideCanton) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/4563](https://github.com/astral-sh/ruff/pull/4563)
- [@&#8203;Thomasdezeeuw](https://github.com/Thomasdezeeuw) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/5021](https://github.com/astral-sh/ruff/pull/5021)
- [@&#8203;adampauls](https://github.com/adampauls) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/4390](https://github.com/astral-sh/ruff/pull/4390)
- [@&#8203;tkukushkin](https://github.com/tkukushkin) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/4853](https://github.com/astral-sh/ruff/pull/4853)
- [@&#8203;Taybou](https://github.com/Taybou) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/5088](https://github.com/astral-sh/ruff/pull/5088)
- [@&#8203;davidszotten](https://github.com/davidszotten) made their
first contribution in
[https://github.com/astral-sh/ruff/pull/5158](https://github.com/astral-sh/ruff/pull/5158)
- [@&#8203;dosisod](https://github.com/dosisod) made their first
contribution in
[https://github.com/astral-sh/ruff/pull/5203](https://github.com/astral-sh/ruff/pull/5203)

**Full Changelog**:
astral-sh/ruff@v0.0.272...v0.0.273

</details>

<details>
<summary>pytest-dev/pytest (pytest/pytest)</summary>

###
[`v7.4.0`](https://github.com/pytest-dev/pytest/releases/tag/7.4.0)

[Compare
Source](https://github.com/pytest-dev/pytest/compare/7.3.2...7.4.0)

# pytest 7.4.0 (2023-06-23)

## Features

- [#&#8203;10901](https://github.com/pytest-dev/pytest/issues/10901):
Added `ExceptionInfo.from_exception()
<pytest.ExceptionInfo.from_exception>`{.interpreted-text role="func"}, a
simpler way to create an `~pytest.ExceptionInfo`{.interpreted-text
role="class"} from an exception.
This can replace `ExceptionInfo.from_exc_info()
<pytest.ExceptionInfo.from_exc_info()>`{.interpreted-text role="func"}
for most uses.

## Improvements

- [#&#8203;10872](https://github.com/pytest-dev/pytest/issues/10872):
Update test log report annotation to named tuple and fixed inconsistency
in docs for `pytest_report_teststatus`{.interpreted-text role="hook"}
hook.

- [#&#8203;10907](https://github.com/pytest-dev/pytest/issues/10907):
When an exception traceback to be displayed is completely filtered out
(by mechanisms such as `__tracebackhide__`, internal frames, and
similar), now only the exception string and the following message are
shown:

"All traceback entries are hidden. Pass \[--full-trace]{.title-ref} to
see hidden and internal frames.".

Previously, the last frame of the traceback was shown, even though it
was hidden.

- [#&#8203;10940](https://github.com/pytest-dev/pytest/issues/10940):
Improved verbose output (`-vv`) of `skip` and `xfail` reasons by
performing text wrapping while leaving a clear margin for progress
output.

    Added `TerminalReporter.wrap_write()` as a helper for that.

- [#&#8203;10991](https://github.com/pytest-dev/pytest/issues/10991):
Added handling of `%f` directive to print microseconds in log format
options, such as `log-date-format`.

- [#&#8203;11005](https://github.com/pytest-dev/pytest/issues/11005):
Added the underlying exception to the cache provider's path creation and
write warning messages.

- [#&#8203;11013](https://github.com/pytest-dev/pytest/issues/11013):
Added warning when `testpaths`{.interpreted-text role="confval"} is set,
but paths are not found by glob. In this case, pytest will fall back to
searching from the current directory.

- [#&#8203;11043](https://github.com/pytest-dev/pytest/issues/11043):
When \[--confcutdir]{.title-ref} is not specified, and there is no
config file present, the conftest cutoff directory
(\[--confcutdir]{.title-ref}) is now set to the `rootdir
<rootdir>`{.interpreted-text role="ref"}.
Previously in such cases, \[conftest.py]{.title-ref} files would be
probed all the way to the root directory of the filesystem.
If you are badly affected by this change, consider adding an empty
config file to your desired cutoff directory, or explicitly set
\[--confcutdir]{.title-ref}.

- [#&#8203;11081](https://github.com/pytest-dev/pytest/issues/11081):
The `norecursedirs`{.interpreted-text role="confval"} check is now
performed in a `pytest_ignore_collect`{.interpreted-text role="hook"}
implementation, so plugins can affect it.

If after updating to this version you see that your
\[norecursedirs]{.title-ref} setting is not being respected,
it means that a conftest or a plugin you use has a bad
\[pytest_ignore_collect]{.title-ref} implementation.
Most likely, your hook returns \[False]{.title-ref} for paths it does
not want to ignore,
which ends the processing and doesn't allow other plugins, including
pytest itself, to ignore the path.
The fix is to return \[None]{.title-ref} instead of \[False]{.title-ref}
for paths your hook doesn't want to ignore.

- [#&#8203;8711](https://github.com/pytest-dev/pytest/issues/8711):
`caplog.set_level()
<pytest.LogCaptureFixture.set_level>`{.interpreted-text role="func"} and
`caplog.at_level()
<pytest.LogCaptureFixture.at_level>`{.interpreted-text role="func"}
will temporarily enable the requested `level` if `level` was disabled
globally via
    `logging.disable(LEVEL)`.

## Bug Fixes

- [#&#8203;10831](https://github.com/pytest-dev/pytest/issues/10831):
Terminal Reporting: Fixed bug when running in `--tb=line` mode where
`pytest.fail(pytrace=False)` tests report `None`.
- [#&#8203;11068](https://github.com/pytest-dev/pytest/issues/11068):
Fixed the `--last-failed` whole-file skipping functionality ("skipped N
files") for `non-python test files <non-python tests>`{.interpreted-text
role="ref"}.
- [#&#8203;11104](https://github.com/pytest-dev/pytest/issues/11104):
Fixed a regression in pytest 7.3.2 which caused to
`testpaths`{.interpreted-text role="confval"} to be considered for
loading initial conftests,
even when it was not utilized (e.g. when explicit paths were given on
the command line).
    Now the `testpaths` are only considered when they are in use.
- [#&#8203;1904](https://github.com/pytest-dev/pytest/issues/1904):
Fixed traceback entries hidden with `__tracebackhide__ = True` still
being shown for chained exceptions (parts after "... the above exception
..." message).
- [#&#8203;7781](https://github.com/pytest-dev/pytest/issues/7781):
Fix writing non-encodable text to log file when using `--debug`.

## Improved Documentation

- [#&#8203;9146](https://github.com/pytest-dev/pytest/issues/9146):
Improved documentation for `caplog.set_level()
<pytest.LogCaptureFixture.set_level>`{.interpreted-text role="func"}.

## Trivial/Internal Changes

- [#&#8203;11031](https://github.com/pytest-dev/pytest/issues/11031):
Enhanced the CLI flag for `-c` to now include `--config-file` to make it
clear that this flag applies to the usage of a custom config file.

###
[`v7.3.2`](https://github.com/pytest-dev/pytest/releases/tag/7.3.2)

[Compare
Source](https://github.com/pytest-dev/pytest/compare/7.3.1...7.3.2)

# pytest 7.3.2 (2023-06-10)

## Bug Fixes

- [#&#8203;10169](https://github.com/pytest-dev/pytest/issues/10169):
Fix bug where very long option names could cause pytest to break with
`OSError: [Errno 36] File name too long` on some systems.
- [#&#8203;10894](https://github.com/pytest-dev/pytest/issues/10894):
Support for Python 3.12 (beta at the time of writing).
- [#&#8203;10987](https://github.com/pytest-dev/pytest/issues/10987):
`testpaths`{.interpreted-text role="confval"} is now honored to load
root `conftests`.
- [#&#8203;10999](https://github.com/pytest-dev/pytest/issues/10999):
The \[monkeypatch]{.title-ref}
\[setitem]{.title-ref}/\[delitem]{.title-ref} type annotations now allow
\[TypedDict]{.title-ref} arguments.
- [#&#8203;11028](https://github.com/pytest-dev/pytest/issues/11028):
Fixed bug in assertion rewriting where a variable assigned with the
walrus operator could not be used later in a function call.
- [#&#8203;11054](https://github.com/pytest-dev/pytest/issues/11054):
Fixed `--last-failed`'s "(skipped N files)" functionality for files
inside of packages (directories with \[\__init\_\_.py]{.title-ref}
files).

</details>

<details>
<summary>pytest-dev/pytest-mock (pytest/pytest-mock)</summary>

###
[`v3.11.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#&#8203;3111-2023-06-15)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.11.0...v3.11.1)

(This release source code is identical to `3.11.0` except a small
internal fix to deployment/CI)

-   Fixed introspection for failed `assert_has_calls` (`#365`\_).

- Updated type annotations for `mocker.patch` and `mocker.spy`
(`#364`\_).

..
\_#&#820[https://github.com/pytest-dev/pytest-mock/pull/365](https://github.com/pytest-dev/pytest-mock/pull/365)ull/365
..
\[https://github.com/pytest-dev/pytest-mock/pull/364](https://github.com/pytest-dev/pytest-mock/pull/364)-mock/pull/364

###
[`v3.11.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#&#8203;3110-2023-06-15)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.0)

-   Fixed introspection for failed `assert_has_calls` (`#365`\_).

- Updated type annotations for `mocker.patch` and `mocker.spy`
(`#364`\_).

..
\_#&#820[https://github.com/pytest-dev/pytest-mock/pull/365](https://github.com/pytest-dev/pytest-mock/pull/365)ull/365
..
\[https://github.com/pytest-dev/pytest-mock/pull/364](https://github.com/pytest-dev/pytest-mock/pull/364)-mock/pull/364

</details>

<details>
<summary>python/mypy (typecheck/mypy)</summary>

### [`v1.4.0`](https://github.com/python/mypy/compare/v1.3.0...v1.4.0)

[Compare
Source](https://github.com/python/mypy/compare/v1.3.0...v1.4.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every 3 months on the first day of
the month" (UTC), 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/AlexWaygood/typeshed-stats).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDQuMiIsInVwZGF0ZWRJblZlciI6IjM1LjE0NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
github-merge-queue bot referenced this pull request in frequenz-floss/frequenz-channels-python Jul 4, 2023
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from
3.10.0 to 3.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.11.1</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.11.1 (2023-06-15)</h2>
<p>(This release source code is identical to <code>3.11.0</code> except
a small internal fix to deployment/CI)</p>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
<h2>3.11.0 (2023-06-15)</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/d3e73f2e93f7b93eba0a36e17e43bafd969da4fe"><code>d3e73f2</code></a>
Explicitly specify the tag name during GitHub Release</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5668efe23e01673af9905febeefd9a9791b023f4"><code>5668efe</code></a>
Update CHANGELOG for 3.11.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c9a4d13ab4e808ef02250898a79c07b2acf76f61"><code>c9a4d13</code></a>
Improve CI</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5818160717a16b7f8867d950ed60b9dc3349ec8d"><code>5818160</code></a>
Add assert_has_calls_wrapper (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/355b5aae1a1a9b3f2c17b2a6bbfde9980967bceb"><code>355b5aa</code></a>
Fix return type annotation for patch and spy (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/8ba681201488bec69f27f6e9e2a56988a01f0d1b"><code>8ba6812</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/362">#362</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/786eaaf416fed8204a8aebb29cbf71527228a9f6"><code>786eaaf</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/360">#360</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/1cb146af21ffd0b5be24703419cf4a192c4ec0ab"><code>1cb146a</code></a>
Push tag manually</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/9608e9659b1f062bb09915f3ef1c538ca7cb5c5f"><code>9608e96</code></a>
Update permissions for deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/c778ee73bd516d465dca3512d099682ba32108fa"><code>c778ee7</code></a>
Fix deployment workflow (<a
href="https://github.com/pytest-dev/pytest-mock/issues/358">#358</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.1">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-mock&package-manager=pip&previous-version=3.10.0&new-version=3.11.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>
RobertCraigie referenced this pull request in RobertCraigie/prisma-client-py Jul 21, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [coverage](https://github.com/nedbat/coveragepy) | `==7.2.5` ->
`==7.2.7` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/coverage/7.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/coverage/7.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/coverage/7.2.5/7.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/coverage/7.2.5/7.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) |
`==9.1.9` -> `==9.1.19` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.1.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.1.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.1.9/9.1.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.1.9/9.1.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [mock](http://mock.readthedocs.org/en/latest/)
([source](https://github.com/testing-cabal/mock)) | `==5.0.2` ->
`==5.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mock/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mock/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mock/5.0.2/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mock/5.0.2/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pyright](https://github.com/RobertCraigie/pyright-python) |
`==1.1.306` -> `==1.1.317` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pyright/1.1.317?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pyright/1.1.317?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pyright/1.1.306/1.1.317?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pyright/1.1.306/1.1.317?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pytest](https://docs.pytest.org/en/latest/)
([source](https://github.com/pytest-dev/pytest),
[changelog](https://docs.pytest.org/en/stable/changelog.html)) |
`==7.3.1` -> `==7.4.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest/7.3.1/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest/7.3.1/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio)
([changelog](https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html))
| `==0.21.0` -> `==0.21.1` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest-asyncio/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest-asyncio/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest-asyncio/0.21.0/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest-asyncio/0.21.0/0.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pytest-mock](https://github.com/pytest-dev/pytest-mock)
([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html))
| `==3.10.0` -> `==3.11.1` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest-mock/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest-mock/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest-mock/3.10.0/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest-mock/3.10.0/3.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nedbat/coveragepy (coverage)</summary>

###
[`v7.2.7`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-727--2023-05-29)

[Compare
Source](https://github.com/nedbat/coveragepy/compare/7.2.6...7.2.7)

- Fix: reverted a `change from 6.4.3 <pull 1347_>`\_ that helped Cython,
but
also increased the size of data files when using dynamic contexts, as
described in the now-fixed `issue 1586`*. The problem is now avoided due
to a
recent change (`issue 1538`*). Thanks to `Anders Kaseorg <pull 1629_>`\_
and David Szotten for persisting with problem reports and detailed
diagnoses.

-   Wheels are now provided for CPython 3.12.

.. \_issue
1586:[https://github.com/nedbat/coveragepy/issues/1586](https://github.com/nedbat/coveragepy/issues/1586)6
.. \_pull
1629[https://github.com/nedbat/coveragepy/pull/1629](https://github.com/nedbat/coveragepy/pull/1629)29

.. \_changes\_7-2-6:

###
[`v7.2.6`](https://github.com/nedbat/coveragepy/blob/HEAD/CHANGES.rst#Version-726--2023-05-23)

[Compare
Source](https://github.com/nedbat/coveragepy/compare/7.2.5...7.2.6)

- Fix: the `lcov` command could raise an IndexError exception if a file
is
translated to Python but then executed under its own name. Jinja2 does
this
    when rendering templates.  Fixes `issue 1553`\_.

- Python 3.12 beta 1 now inlines comprehensions. Previously they were
compiled
as invisible functions and coverage.py would warn you if they weren't
    completely executed.  This no longer happens under Python 3.12.

- Fix: the `coverage debug sys` command includes some environment
variables
in its output. This could have included sensitive data. Those values are
    now hidden with asterisks, closing `issue 1628`\_.

.. \_issue
1553:[https://github.com/nedbat/coveragepy/issues/1553](https://github.com/nedbat/coveragepy/issues/1553)3
.. \_issue
1628[https://github.com/nedbat/coveragepy/issues/1628](https://github.com/nedbat/coveragepy/issues/1628)28

.. \_changes\_7-2-5:

</details>

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.1.19`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.19):
mkdocs-material-9.1.19

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.18...9.1.19)

-   Added support for MkDocs 1.5+
- Fixed
[#&#8203;5699](https://github.com/squidfunk/mkdocs-material/issues/5699):
Improve error reporting in social plugin

###
[`v9.1.18`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.18):
mkdocs-material-9.1.18

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.17...9.1.18)

-   Updated Danish translations
-   Added support for installing user requirements in Docker image
- Fixed
[#&#8203;5655](https://github.com/squidfunk/mkdocs-material/issues/5655):
Search separator with lookbehind breaks highlighting

###
[`v9.1.17`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.17):
mkdocs-material-9.1.17

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.16...9.1.17)

- Fixed
[#&#8203;5633](https://github.com/squidfunk/mkdocs-material/issues/5633):
Code annotations with nested lists incorrectly mounted
- Fixed
[#&#8203;5628](https://github.com/squidfunk/mkdocs-material/issues/5628):
Regression in new social plugin configuration scheme

###
[`v9.1.16`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.16):
mkdocs-material-9.1.16

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.15...9.1.16)

-   Updated Indonesian translations
-   Ensure scroll bar follows color scheme of operating system

###
[`v9.1.15`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.15):
mkdocs-material-9.1.15

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.14...9.1.15)

- Fixed
[#&#8203;5566](https://github.com/squidfunk/mkdocs-material/issues/5566):
Indicate color scheme to operating system
- Fixed
[#&#8203;5565](https://github.com/squidfunk/mkdocs-material/issues/5565):
Update `Dockerfile` to latest version of base image
- Fixed
[#&#8203;5554](https://github.com/squidfunk/mkdocs-material/issues/5554):
Add additional version tags (`9`, `9.1`) to Docker image
- Fixed
[#&#8203;5536](https://github.com/squidfunk/mkdocs-material/issues/5536):
Strip tags of ARIA labels in table of contents

###
[`v9.1.14`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.14):
mkdocs-material-9.1.14

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.13...9.1.14)

-   Updated Armenian and Greek translations

###
[`v9.1.13`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.13):
mkdocs-material-9.1.13

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.12...9.1.13)

- Fixed
[#&#8203;5517](https://github.com/squidfunk/mkdocs-material/issues/5517):
Social plugin crashes for some fonts (e.g. Open Sans)

###
[`v9.1.12`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.12):
mkdocs-material-9.1.12

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.11...9.1.12)

-   Updated Bengali (Bangla) translations
- Fixed
[#&#8203;5503](https://github.com/squidfunk/mkdocs-material/issues/5503):
Docker image publish errors on uppercase characters
- Fixed
[#&#8203;5407](https://github.com/squidfunk/mkdocs-material/issues/5407):
Auto-pause media when in hidden content tabs

###
[`v9.1.11`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.11):
mkdocs-material-9.1.11

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.10...9.1.11)

- Fixed
[#&#8203;5487](https://github.com/squidfunk/mkdocs-material/issues/5487):
Social plugin crashes without options (9.1.10 regression)

###
[`v9.1.10`](https://github.com/squidfunk/mkdocs-material/releases/tag/9.1.10):
mkdocs-material-9.1.10

[Compare
Source](https://github.com/squidfunk/mkdocs-material/compare/9.1.9...9.1.10)

-   Added `cards_layout_options` setting for social cards
-   Deprecated `cards_color` and `cards_font` setting for social cards

</details>

<details>
<summary>testing-cabal/mock (mock)</summary>

###
[`v5.1.0`](https://github.com/testing-cabal/mock/blob/HEAD/CHANGELOG.rst#510)

[Compare
Source](https://github.com/testing-cabal/mock/compare/5.0.2...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](https://github.com/testing-cabal/mock/issues/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.

</details>

<details>
<summary>RobertCraigie/pyright-python (pyright)</summary>

###
[`v1.1.317`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.316...v1.1.317)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.316...v1.1.317)

###
[`v1.1.316`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.315...v1.1.316)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.315...v1.1.316)

###
[`v1.1.315`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.314...v1.1.315)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.314...v1.1.315)

###
[`v1.1.314`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.313...v1.1.314)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.313...v1.1.314)

###
[`v1.1.313`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.312...v1.1.313)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.312...v1.1.313)

###
[`v1.1.312`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.311...v1.1.312)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.311...v1.1.312)

###
[`v1.1.311`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.310...v1.1.311)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.310...v1.1.311)

###
[`v1.1.310`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.309...v1.1.310)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.309...v1.1.310)

###
[`v1.1.309`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.308...v1.1.309)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.308...v1.1.309)

###
[`v1.1.308`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.307...v1.1.308)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.307...v1.1.308)

###
[`v1.1.307`](https://github.com/RobertCraigie/pyright-python/compare/v1.1.306...v1.1.307)

[Compare
Source](https://github.com/RobertCraigie/pyright-python/compare/v1.1.306...v1.1.307)

</details>

<details>
<summary>pytest-dev/pytest (pytest)</summary>

###
[`v7.4.0`](https://github.com/pytest-dev/pytest/releases/tag/7.4.0)

[Compare
Source](https://github.com/pytest-dev/pytest/compare/7.3.2...7.4.0)

# pytest 7.4.0 (2023-06-23)

## Features

- [#&#8203;10901](https://github.com/pytest-dev/pytest/issues/10901):
Added `ExceptionInfo.from_exception()
<pytest.ExceptionInfo.from_exception>`{.interpreted-text role="func"}, a
simpler way to create an `~pytest.ExceptionInfo`{.interpreted-text
role="class"} from an exception.
This can replace `ExceptionInfo.from_exc_info()
<pytest.ExceptionInfo.from_exc_info()>`{.interpreted-text role="func"}
for most uses.

## Improvements

- [#&#8203;10872](https://github.com/pytest-dev/pytest/issues/10872):
Update test log report annotation to named tuple and fixed inconsistency
in docs for `pytest_report_teststatus`{.interpreted-text role="hook"}
hook.

- [#&#8203;10907](https://github.com/pytest-dev/pytest/issues/10907):
When an exception traceback to be displayed is completely filtered out
(by mechanisms such as `__tracebackhide__`, internal frames, and
similar), now only the exception string and the following message are
shown:

"All traceback entries are hidden. Pass \[--full-trace]{.title-ref} to
see hidden and internal frames.".

Previously, the last frame of the traceback was shown, even though it
was hidden.

- [#&#8203;10940](https://github.com/pytest-dev/pytest/issues/10940):
Improved verbose output (`-vv`) of `skip` and `xfail` reasons by
performing text wrapping while leaving a clear margin for progress
output.

    Added `TerminalReporter.wrap_write()` as a helper for that.

- [#&#8203;10991](https://github.com/pytest-dev/pytest/issues/10991):
Added handling of `%f` directive to print microseconds in log format
options, such as `log-date-format`.

- [#&#8203;11005](https://github.com/pytest-dev/pytest/issues/11005):
Added the underlying exception to the cache provider's path creation and
write warning messages.

- [#&#8203;11013](https://github.com/pytest-dev/pytest/issues/11013):
Added warning when `testpaths`{.interpreted-text role="confval"} is set,
but paths are not found by glob. In this case, pytest will fall back to
searching from the current directory.

- [#&#8203;11043](https://github.com/pytest-dev/pytest/issues/11043):
When \[--confcutdir]{.title-ref} is not specified, and there is no
config file present, the conftest cutoff directory
(\[--confcutdir]{.title-ref}) is now set to the `rootdir
<rootdir>`{.interpreted-text role="ref"}.
Previously in such cases, \[conftest.py]{.title-ref} files would be
probed all the way to the root directory of the filesystem.
If you are badly affected by this change, consider adding an empty
config file to your desired cutoff directory, or explicitly set
\[--confcutdir]{.title-ref}.

- [#&#8203;11081](https://github.com/pytest-dev/pytest/issues/11081):
The `norecursedirs`{.interpreted-text role="confval"} check is now
performed in a `pytest_ignore_collect`{.interpreted-text role="hook"}
implementation, so plugins can affect it.

If after updating to this version you see that your
\[norecursedirs]{.title-ref} setting is not being respected,
it means that a conftest or a plugin you use has a bad
\[pytest_ignore_collect]{.title-ref} implementation.
Most likely, your hook returns \[False]{.title-ref} for paths it does
not want to ignore,
which ends the processing and doesn't allow other plugins, including
pytest itself, to ignore the path.
The fix is to return \[None]{.title-ref} instead of \[False]{.title-ref}
for paths your hook doesn't want to ignore.

- [#&#8203;8711](https://github.com/pytest-dev/pytest/issues/8711):
`caplog.set_level()
<pytest.LogCaptureFixture.set_level>`{.interpreted-text role="func"} and
`caplog.at_level()
<pytest.LogCaptureFixture.at_level>`{.interpreted-text role="func"}
will temporarily enable the requested `level` if `level` was disabled
globally via
    `logging.disable(LEVEL)`.

## Bug Fixes

- [#&#8203;10831](https://github.com/pytest-dev/pytest/issues/10831):
Terminal Reporting: Fixed bug when running in `--tb=line` mode where
`pytest.fail(pytrace=False)` tests report `None`.
- [#&#8203;11068](https://github.com/pytest-dev/pytest/issues/11068):
Fixed the `--last-failed` whole-file skipping functionality ("skipped N
files") for `non-python test files <non-python tests>`{.interpreted-text
role="ref"}.
- [#&#8203;11104](https://github.com/pytest-dev/pytest/issues/11104):
Fixed a regression in pytest 7.3.2 which caused to
`testpaths`{.interpreted-text role="confval"} to be considered for
loading initial conftests,
even when it was not utilized (e.g. when explicit paths were given on
the command line).
    Now the `testpaths` are only considered when they are in use.
- [#&#8203;1904](https://github.com/pytest-dev/pytest/issues/1904):
Fixed traceback entries hidden with `__tracebackhide__ = True` still
being shown for chained exceptions (parts after "... the above exception
..." message).
- [#&#8203;7781](https://github.com/pytest-dev/pytest/issues/7781):
Fix writing non-encodable text to log file when using `--debug`.

## Improved Documentation

- [#&#8203;9146](https://github.com/pytest-dev/pytest/issues/9146):
Improved documentation for `caplog.set_level()
<pytest.LogCaptureFixture.set_level>`{.interpreted-text role="func"}.

## Trivial/Internal Changes

- [#&#8203;11031](https://github.com/pytest-dev/pytest/issues/11031):
Enhanced the CLI flag for `-c` to now include `--config-file` to make it
clear that this flag applies to the usage of a custom config file.

###
[`v7.3.2`](https://github.com/pytest-dev/pytest/releases/tag/7.3.2)

[Compare
Source](https://github.com/pytest-dev/pytest/compare/7.3.1...7.3.2)

# pytest 7.3.2 (2023-06-10)

## Bug Fixes

- [#&#8203;10169](https://github.com/pytest-dev/pytest/issues/10169):
Fix bug where very long option names could cause pytest to break with
`OSError: [Errno 36] File name too long` on some systems.
- [#&#8203;10894](https://github.com/pytest-dev/pytest/issues/10894):
Support for Python 3.12 (beta at the time of writing).
- [#&#8203;10987](https://github.com/pytest-dev/pytest/issues/10987):
`testpaths`{.interpreted-text role="confval"} is now honored to load
root `conftests`.
- [#&#8203;10999](https://github.com/pytest-dev/pytest/issues/10999):
The \[monkeypatch]{.title-ref}
\[setitem]{.title-ref}/\[delitem]{.title-ref} type annotations now allow
\[TypedDict]{.title-ref} arguments.
- [#&#8203;11028](https://github.com/pytest-dev/pytest/issues/11028):
Fixed bug in assertion rewriting where a variable assigned with the
walrus operator could not be used later in a function call.
- [#&#8203;11054](https://github.com/pytest-dev/pytest/issues/11054):
Fixed `--last-failed`'s "(skipped N files)" functionality for files
inside of packages (directories with \[\__init\_\_.py]{.title-ref}
files).

</details>

<details>
<summary>pytest-dev/pytest-asyncio (pytest-asyncio)</summary>

###
[`v0.21.1`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.21.1):
pytest-asyncio 0.21.1

[Compare
Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.21.0...v0.21.1)

### 0.21.1 (2023-07-12)

- Output a proper error message when an invalid `asyncio_mode` is
selected.
- Extend warning message about unclosed event loops with additional
possible cause.

[#&#8203;531](https://github.com/pytest-dev/pytest-asyncio/issues/531)
- Previously, some tests reported "skipped" or "xfailed" as a result.
Now all tests report a "success" result.

</details>

<details>
<summary>pytest-dev/pytest-mock (pytest-mock)</summary>

###
[`v3.11.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3111-2023-06-15)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.11.0...v3.11.1)

(This release source code is identical to `3.11.0` except a small
internal fix to deployment/CI)

-   Fixed introspection for failed `assert_has_calls` (`#365`\_).

- Updated type annotations for `mocker.patch` and `mocker.spy`
(`#364`\_).

..
\_#365:[https://github.com/pytest-dev/pytest-mock/pull/365](https://github.com/pytest-dev/pytest-mock/pull/365)5
..
\_#364[https://github.com/pytest-dev/pytest-mock/pull/364](https://github.com/pytest-dev/pytest-mock/pull/364)64

###
[`v3.11.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3110-2023-06-15)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.0)

-   Fixed introspection for failed `assert_has_calls` (`#365`\_).

- Updated type annotations for `mocker.patch` and `mocker.spy`
(`#364`\_).

..
\_#365:[https://github.com/pytest-dev/pytest-mock/pull/365](https://github.com/pytest-dev/pytest-mock/pull/365)5
..
\_#364[https://github.com/pytest-dev/pytest-mock/pull/364](https://github.com/pytest-dev/pytest-mock/pull/364)64

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/RobertCraigie/prisma-client-py).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43NC4wIiwidXBkYXRlZEluVmVyIjoiMzYuOC4xMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Craigie <robert@craigie.dev>
github-actions bot referenced this pull request in afonasev/deta_todo_service Nov 1, 2023
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from
3.10.0 to 3.12.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.12.0</h2>
<ul>
<li>Added support for Python 3.12.</li>
<li>Dropped support for EOL Python 3.7.</li>
<li><code>mocker.resetall()</code> now also resets mocks created by
<code>mocker.create_autospec</code> (<a
href="https://github.com/pytest-dev/pytest-mock/pull/390">#390</a>).</li>
</ul>
<h2>v3.11.1</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.12.0 (2023-10-19)</h2>
<ul>
<li>Added support for Python 3.12.</li>
<li>Dropped support for EOL Python 3.7.</li>
<li><code>mocker.resetall()</code> now also resets mocks created by
<code>mocker.create_autospec</code>
(<code>[#390](https://github.com/pytest-dev/pytest-mock/issues/390)</code>_).</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/390">#390</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/390">pytest-dev/pytest-mock#390</a></p>
<h2>3.11.1 (2023-06-15)</h2>
<p>(This release source code is identical to <code>3.11.0</code> except
a small internal fix to deployment/CI)</p>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
<h2>3.11.0 (2023-06-15)</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/69adc6f76c1a7baf4e7a728da9eec38741d5783e"><code>69adc6f</code></a>
Re-add norewrite tests</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/b905823ba6894f89b1ecd9aafcabf1e20612ac22"><code>b905823</code></a>
Drop Python 3.7 and add Python 3.12</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/2a71a0d6ab8719defc9309da20bd97b7b35262b6"><code>2a71a0d</code></a>
mocker.resetall now also resets mockers created by
<code>create_autospec</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/390">#390</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/e84f88501188504f1fa6e56e0d0e6604985298a1"><code>e84f885</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-mock/issues/391">#391</a>
from pytest-dev/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/e0372217cdd057eb67ffe416177880c141cd3adf"><code>e037221</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/f019696e44adb0d6159bea78172ed8d0aeed10e5"><code>f019696</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-mock/issues/387">#387</a>
from pytest-dev/where-to-patch-link</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/09f18148a5b1a2109914f47198c8d8fb1f836307"><code>09f1814</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-mock/issues/388">#388</a>
from pytest-dev/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/f55f17e73b469034dbb87e5fadbb3e103913826a"><code>f55f17e</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/cec59a0b444efc3f1fb03308460cad6bf5a81709"><code>cec59a0</code></a>
Update usage.rst</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/53cc0a550fb6dbb9c1eafc2c96cc5c2bf02c4185"><code>53cc0a5</code></a>
Update usage.rst</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.12.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-mock&package-manager=pip&previous-version=3.10.0&new-version=3.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-merge-queue bot referenced this pull request in BSStudio/bss-web-file-api Mar 22, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pytest-mock](https://github.com/pytest-dev/pytest-mock)
([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html))
| `3.10.0` -> `3.14.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest-mock/3.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest-mock/3.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest-mock/3.10.0/3.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest-mock/3.10.0/3.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pytest-dev/pytest-mock (pytest-mock)</summary>

###
[`v3.14.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3140-2024-03-21)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.13.0...v3.14.0)

- `#&#8203;415 <https://github.com/pytest-dev/pytest-mock/pull/415>`\_:
`MockType` and `AsyncMockType` can be imported from `pytest_mock` for
type annotation purposes.

- `#&#8203;420
<https://github.com/pytest-dev/pytest-mock/issues/420>`\_: Fixed a
regression which would cause `mocker.patch.object` to not being properly
cleared between tests.

###
[`v3.13.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3130-2024-03-21)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.12.0...v3.13.0)

- `#&#8203;417 <https://github.com/pytest-dev/pytest-mock/pull/417>`\_:
`spy` now has `spy_return_list`, which is a list containing all the
values returned by the spied function.
-   `pytest-mock` now requires `pytest>=6.2.5`.
- `#&#8203;410 <https://github.com/pytest-dev/pytest-mock/pull/410>`*:
pytest-mock's `setup.py` file is removed.
If you relied on this file, e.g. to install pytest using `setup.py
install`,
please see `Why you shouldn't invoke setup.py directly
<https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary>`*
for alternatives.

###
[`v3.12.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3120-2023-10-19)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.11.1...v3.12.0)

-   Added support for Python 3.12.
-   Dropped support for EOL Python 3.7.
- `mocker.resetall()` now also resets mocks created by
`mocker.create_autospec` (`#390`\_).

..
\_#390:[https://github.com/pytest-dev/pytest-mock/pull/390](https://github.com/pytest-dev/pytest-mock/pull/390)0

###
[`v3.11.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3111-2023-06-15)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.11.0...v3.11.1)

(This release source code is identical to `3.11.0` except a small
internal fix to deployment/CI)

-   Fixed introspection for failed `assert_has_calls` (`#365`\_).

- Updated type annotations for `mocker.patch` and `mocker.spy`
(`#364`\_).

..
\_#365:[https://github.com/pytest-dev/pytest-mock/pull/365](https://github.com/pytest-dev/pytest-mock/pull/365)5
..
\_#364[https://github.com/pytest-dev/pytest-mock/pull/364](https://github.com/pytest-dev/pytest-mock/pull/364)64

###
[`v3.11.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3110-2023-06-15)

[Compare
Source](https://github.com/pytest-dev/pytest-mock/compare/v3.10.0...v3.11.0)

-   Fixed introspection for failed `assert_has_calls` (`#365`\_).

- Updated type annotations for `mocker.patch` and `mocker.spy`
(`#364`\_).

..
\_#365:[https://github.com/pytest-dev/pytest-mock/pull/365](https://github.com/pytest-dev/pytest-mock/pull/365)5
..
\_#364[https://github.com/pytest-dev/pytest-mock/pull/364](https://github.com/pytest-dev/pytest-mock/pull/364)64

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/BSStudio/bss-web-file-api).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
DanielTsiang referenced this pull request in DanielTsiang/stock-simulator May 1, 2024
…67)

[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Updates the requirements on
[pytest-mock](https://github.com/pytest-dev/pytest-mock) to permit the
latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/releases">pytest-mock's
releases</a>.</em></p>
<blockquote>
<h2>v3.14.0</h2>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/pull/415">#415</a>:
<code>MockType</code> and <code>AsyncMockType</code> can be imported
from <code>pytest_mock</code> for type annotation purposes.</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/issues/420">#420</a>:
Fixed a regression which would cause <code>mocker.patch.object</code> to
not being properly cleared between tests.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst">pytest-mock's
changelog</a>.</em></p>
<blockquote>
<h2>3.14.0 (2024-03-21)</h2>
<ul>
<li>
<p><code>[#415](pytest-dev/pytest-mock#415)
&lt;https://github.com/pytest-dev/pytest-mock/pull/415&gt;</code>_:
<code>MockType</code> and <code>AsyncMockType</code> can be imported
from <code>pytest_mock</code> for type annotation purposes.</p>
</li>
<li>
<p><code>[#420](pytest-dev/pytest-mock#420)
&lt;https://github.com/pytest-dev/pytest-mock/issues/420&gt;</code>_:
Fixed a regression which would cause <code>mocker.patch.object</code> to
not being properly cleared between tests.</p>
</li>
</ul>
<h2>3.13.0 (2024-03-21)</h2>
<ul>
<li><code>[#417](pytest-dev/pytest-mock#417)
&lt;https://github.com/pytest-dev/pytest-mock/pull/417&gt;</code>_:
<code>spy</code> now has <code>spy_return_list</code>, which is a list
containing all the values returned by the spied function.</li>
<li><code>pytest-mock</code> now requires
<code>pytest&gt;=6.2.5</code>.</li>
<li><code>[#410](pytest-dev/pytest-mock#410)
&lt;https://github.com/pytest-dev/pytest-mock/pull/410&gt;</code><em>:
pytest-mock's <code>setup.py</code> file is removed.
If you relied on this file, e.g. to install pytest using <code>setup.py
install</code>,
please see <code>Why you shouldn't invoke setup.py directly
&lt;https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary&gt;</code></em>
for alternatives.</li>
</ul>
<h2>3.12.0 (2023-10-19)</h2>
<ul>
<li>Added support for Python 3.12.</li>
<li>Dropped support for EOL Python 3.7.</li>
<li><code>mocker.resetall()</code> now also resets mocks created by
<code>mocker.create_autospec</code>
(<code>[#390](https://github.com/pytest-dev/pytest-mock/issues/390)</code>_).</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/390">#390</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/390">pytest-dev/pytest-mock#390</a></p>
<h2>3.11.1 (2023-06-15)</h2>
<p>(This release source code is identical to <code>3.11.0</code> except
a small internal fix to deployment/CI)</p>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
<h2>3.11.0 (2023-06-15)</h2>
<ul>
<li>
<p>Fixed introspection for failed <code>assert_has_calls</code>
(<code>[#365](https://github.com/pytest-dev/pytest-mock/issues/365)</code>_).</p>
</li>
<li>
<p>Updated type annotations for <code>mocker.patch</code> and
<code>mocker.spy</code>
(<code>[#364](https://github.com/pytest-dev/pytest-mock/issues/364)</code>_).</p>
</li>
</ul>
<p>.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/365">#365</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/365">pytest-dev/pytest-mock#365</a>
.. _<a
href="https://github.com/pytest-dev/pytest-mock/issues/364">#364</a>:
<a
href="https://github.com/pytest-dev/pytest-mock/pull/364">pytest-dev/pytest-mock#364</a></p>
<p>3.10.0 (2022-10-05)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/8733134b6194395e9cd3c745adcc9a9c09b0279e"><code>8733134</code></a>
Update CHANGELOG for 3.14.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5257e3c0df0a18bca4028daa9e6d2d91870ff576"><code>5257e3c</code></a>
Refactor MockCache to have a narrow interface</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/4faf92ae233afadac3831ab570531e540dc87830"><code>4faf92a</code></a>
Fix regression with mocker.patch not being undone correctly</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/6bd8712a14a1a11d348354318fdbad3fd9bbdb78"><code>6bd8712</code></a>
Drop pre-Python 3.8 support code</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/366966bff1e3ca2e1455d704dd59991da5593877"><code>366966b</code></a>
Export <code>MockType</code>/<code>AsyncMockType</code> for type
annotations (<a
href="https://github.com/pytest-dev/pytest-mock/issues/415">#415</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/852116b0af33db27fe595847c091631dcf059a1c"><code>852116b</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-mock/issues/418">#418</a>
from pytest-dev/release-3.13.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/ef9461b8b5bdcdd416841b986cf4e1d336c84266"><code>ef9461b</code></a>
Add instructions on how to start deploy from command-line</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/5b9d2858f507e04cc97a3c206f55d7d5505ae71c"><code>5b9d285</code></a>
Release 3.13.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/6d5d6dc2274cea96b6919a4a2a6dc7a3394ef11d"><code>6d5d6dc</code></a>
Implement <code>spy_return_list</code> (<a
href="https://github.com/pytest-dev/pytest-mock/issues/417">#417</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-mock/commit/dc28a0ec7b66372fbc6e0cf1bbe443ce7ca465cd"><code>dc28a0e</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-mock/issues/416">#416</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-mock/compare/v3.12.0...v3.14.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

3 participants