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

Ensure all the exceptions can be spied on #216

Merged

Conversation

webknjaz
Copy link
Member

This change replaces Exception with BaseException in the spy()
method provided by the mocker fixture. This enables the caller to
spy on things like KeyboardInterrupt, GeneratorExit and
SystemExit exceptions that hasn't been possible before because of
a bug.

Before this change, any occurances of the above exceptions caused
spy() to assign None to both spy_return and spy_exception
attributes.

Fixes #215

@webknjaz webknjaz force-pushed the bugfixes/215-spy-on-keyboard-interrupt branch 2 times, most recently from 4e1e906 to e5f2216 Compare December 11, 2020 11:19
This change replaces `Exception` with `BaseException` in the `spy()`
method provided by the `mocker` fixture. This enables the caller to
spy on things like `KeyboardInterrupt`, `GeneratorExit` and
`SystemExit` exceptions that hasn't been possible before because of
a bug.

Before this change, any occurances of the above exceptions caused
`spy()` to assign `None` to both `spy_return` and `spy_exception`
attributes.

Fixes pytest-dev#215
@webknjaz webknjaz force-pushed the bugfixes/215-spy-on-keyboard-interrupt branch from e5f2216 to 0e6b221 Compare December 11, 2020 11:21
Copy link

@asvetlov asvetlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@webknjaz webknjaz changed the title Ensure all the exceptions cat be spied on Ensure all the exceptions can be spied on Dec 11, 2020
Copy link
Member

@nicoddemus nicoddemus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great PR, thanks a lot!

@nicoddemus nicoddemus merged commit 9640a36 into pytest-dev:master Dec 15, 2020
@nicoddemus
Copy link
Member

3.4.0 has been released, thanks again!

webknjaz added a commit to webknjaz/pytest-mock that referenced this pull request Dec 16, 2020
@webknjaz
Copy link
Member Author

@nicoddemus thanks for the release! I noticed that I've made typos (or probably accidentally removed a part of the sentence) in the change note. Here's a correction for that: #220.

nicoddemus added a commit that referenced this pull request Dec 16, 2020
Fix typos in a change note for the PR #216
@nicoddemus
Copy link
Member

Merged, thanks!

aio-libs-github-bot bot pushed a commit to aio-libs/aiohttp that referenced this pull request Jan 5, 2021
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.3.1 to 3.5.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst">pytest-mock's changelog</a>.</em></p>
<blockquote>
<h2>3.5.0 (2021-01-04)</h2>
<ul>
<li>
<p>Now all patch functions will emit a warning instead of raising a <code>ValueError</code> when used
as a context-manager. Thanks <code>@iforapsy</code>_ for the PR (<code>[#221](https://github.com/pytest-dev/pytest-mock/issues/221)</code>_).</p>
</li>
<li>
<p>Additionally, <code>mocker.patch.context_manager</code> is available when the user intends to mock
a context manager (for example  <code>threading.Lock</code> object), which will not emit that
warning.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/iforapsy">@iforapsy</a>: <a href="https://github.com/iforapsy">https://github.com/iforapsy</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/221">pytest-dev/pytest-mock#221</a></p>
<h2>3.4.0 (2020-12-15)</h2>
<ul>
<li>
<p>Add <code>mock.seal</code> alias to the <code>mocker</code> fixture (<code>[#211](https://github.com/pytest-dev/pytest-mock/issues/211)</code><em>). Thanks <code>@coiax</code></em> for the PR.</p>
</li>
<li>
<p>Fixed spying on exceptions not covered by the <code>Exception</code>
superclass (<code>[#215](https://github.com/pytest-dev/pytest-mock/issues/215)</code><em>), like <code>KeyboardInterrupt</code> -- PR <code>[#216](https://github.com/pytest-dev/pytest-mock/issues/216)</code></em>
by <code>@webknjaz</code>_.</p>
<p>Before the fix, both <code>spy_return</code> and <code>spy_exception</code>
were always assigned to <code>None</code>
whenever such an exception happened. And after this fix,
<code>spy_exception</code> is set to a correct value of an exception
that has actually happened.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/coiax">@coiax</a>: <a href="https://github.com/coiax">https://github.com/coiax</a>
.. _<a href="https://github.com/webknjaz">@webknjaz</a>: <a href="https://github.com/sponsors/webknjaz">https://github.com/sponsors/webknjaz</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/211">#211</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/211">pytest-dev/pytest-mock#211</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">#215</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">pytest-dev/pytest-mock#215</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/216">pytest-dev/pytest-mock#216</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/cdd5d709f5d1e30526ca30ae93c64fbbaebcd58d"><code>cdd5d70</code></a> Update context-manager docs and prepare for 3.5.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/f623fa88211e07ac4965a9079afabe9f23334758"><code>f623fa8</code></a> Warn instead of raising exception in context manager (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/5f6cab7ead376d4f2de20c32bf01e244ffd44898"><code>5f6cab7</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/220">#220</a> from webknjaz/docs/216-changelog</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9771def1069d3f1560525799ec8ba9d8e2c75ed3"><code>9771def</code></a> Fix typos in a change note for the PR <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a></li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/d4e3f3edd4e085e6b4bc15930a440e759984352b"><code>d4e3f3e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/208">#208</a> from pytest-dev/graingert-patch-1</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/252eba86090fc0522c23805c097eb0c570a2c754"><code>252eba8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/219">#219</a> from nicoddemus/release-3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/df9ec17198d9c5d8e26eb91c892c5514b5793b02"><code>df9ec17</code></a> Prepare release 3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/91b4afb0b9ab3a454a2e8235da682e7287ab8f32"><code>91b4afb</code></a> Add testing for Python 3.9 (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/218">#218</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9640a36d06f1b35796e316d3b4529022e9d67fb7"><code>9640a36</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a> from webknjaz/bugfixes/215-spy-on-keyboard-interrupt</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/0e6b221080f5b8ef425a862ca45052131527894a"><code>0e6b221</code></a> Ensure all the exceptions cat be spied on</li>
<li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-mock/compare/v3.3.1...v3.5.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.3.1&new-version=3.5.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)
alandtse pushed a commit to alandtse/aiohttp that referenced this pull request Feb 14, 2021
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.3.1 to 3.5.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst">pytest-mock's changelog</a>.</em></p>
<blockquote>
<h2>3.5.0 (2021-01-04)</h2>
<ul>
<li>
<p>Now all patch functions will emit a warning instead of raising a <code>ValueError</code> when used
as a context-manager. Thanks <code>@iforapsy</code>_ for the PR (<code>[#221](https://github.com/pytest-dev/pytest-mock/issues/221)</code>_).</p>
</li>
<li>
<p>Additionally, <code>mocker.patch.context_manager</code> is available when the user intends to mock
a context manager (for example  <code>threading.Lock</code> object), which will not emit that
warning.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/iforapsy">@iforapsy</a>: <a href="https://github.com/iforapsy">https://github.com/iforapsy</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/221">pytest-dev/pytest-mock#221</a></p>
<h2>3.4.0 (2020-12-15)</h2>
<ul>
<li>
<p>Add <code>mock.seal</code> alias to the <code>mocker</code> fixture (<code>[#211](https://github.com/pytest-dev/pytest-mock/issues/211)</code><em>). Thanks <code>@coiax</code></em> for the PR.</p>
</li>
<li>
<p>Fixed spying on exceptions not covered by the <code>Exception</code>
superclass (<code>[#215](https://github.com/pytest-dev/pytest-mock/issues/215)</code><em>), like <code>KeyboardInterrupt</code> -- PR <code>[#216](https://github.com/pytest-dev/pytest-mock/issues/216)</code></em>
by <code>@webknjaz</code>_.</p>
<p>Before the fix, both <code>spy_return</code> and <code>spy_exception</code>
were always assigned to <code>None</code>
whenever such an exception happened. And after this fix,
<code>spy_exception</code> is set to a correct value of an exception
that has actually happened.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/coiax">@coiax</a>: <a href="https://github.com/coiax">https://github.com/coiax</a>
.. _<a href="https://github.com/webknjaz">@webknjaz</a>: <a href="https://github.com/sponsors/webknjaz">https://github.com/sponsors/webknjaz</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/211">#211</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/211">pytest-dev/pytest-mock#211</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">#215</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">pytest-dev/pytest-mock#215</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/216">pytest-dev/pytest-mock#216</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/cdd5d709f5d1e30526ca30ae93c64fbbaebcd58d"><code>cdd5d70</code></a> Update context-manager docs and prepare for 3.5.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/f623fa88211e07ac4965a9079afabe9f23334758"><code>f623fa8</code></a> Warn instead of raising exception in context manager (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/5f6cab7ead376d4f2de20c32bf01e244ffd44898"><code>5f6cab7</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/220">#220</a> from webknjaz/docs/216-changelog</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9771def1069d3f1560525799ec8ba9d8e2c75ed3"><code>9771def</code></a> Fix typos in a change note for the PR <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a></li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/d4e3f3edd4e085e6b4bc15930a440e759984352b"><code>d4e3f3e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/208">#208</a> from pytest-dev/graingert-patch-1</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/252eba86090fc0522c23805c097eb0c570a2c754"><code>252eba8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/219">#219</a> from nicoddemus/release-3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/df9ec17198d9c5d8e26eb91c892c5514b5793b02"><code>df9ec17</code></a> Prepare release 3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/91b4afb0b9ab3a454a2e8235da682e7287ab8f32"><code>91b4afb</code></a> Add testing for Python 3.9 (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/218">#218</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9640a36d06f1b35796e316d3b4529022e9d67fb7"><code>9640a36</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a> from webknjaz/bugfixes/215-spy-on-keyboard-interrupt</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/0e6b221080f5b8ef425a862ca45052131527894a"><code>0e6b221</code></a> Ensure all the exceptions cat be spied on</li>
<li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-mock/compare/v3.3.1...v3.5.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.3.1&new-version=3.5.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)
commonism pushed a commit to commonism/aiohttp that referenced this pull request Apr 27, 2021
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.3.1 to 3.5.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst">pytest-mock's changelog</a>.</em></p>
<blockquote>
<h2>3.5.0 (2021-01-04)</h2>
<ul>
<li>
<p>Now all patch functions will emit a warning instead of raising a <code>ValueError</code> when used
as a context-manager. Thanks <code>@iforapsy</code>_ for the PR (<code>[aio-libs#221](https://github.com/pytest-dev/pytest-mock/issues/221)</code>_).</p>
</li>
<li>
<p>Additionally, <code>mocker.patch.context_manager</code> is available when the user intends to mock
a context manager (for example  <code>threading.Lock</code> object), which will not emit that
warning.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/iforapsy">@iforapsy</a>: <a href="https://github.com/iforapsy">https://github.com/iforapsy</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/221">pytest-dev/pytest-mock#221</a></p>
<h2>3.4.0 (2020-12-15)</h2>
<ul>
<li>
<p>Add <code>mock.seal</code> alias to the <code>mocker</code> fixture (<code>[aio-libs#211](https://github.com/pytest-dev/pytest-mock/issues/211)</code><em>). Thanks <code>@coiax</code></em> for the PR.</p>
</li>
<li>
<p>Fixed spying on exceptions not covered by the <code>Exception</code>
superclass (<code>[aio-libs#215](https://github.com/pytest-dev/pytest-mock/issues/215)</code><em>), like <code>KeyboardInterrupt</code> -- PR <code>[aio-libs#216](https://github.com/pytest-dev/pytest-mock/issues/216)</code></em>
by <code>@webknjaz</code>_.</p>
<p>Before the fix, both <code>spy_return</code> and <code>spy_exception</code>
were always assigned to <code>None</code>
whenever such an exception happened. And after this fix,
<code>spy_exception</code> is set to a correct value of an exception
that has actually happened.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/coiax">@coiax</a>: <a href="https://github.com/coiax">https://github.com/coiax</a>
.. _<a href="https://github.com/webknjaz">@webknjaz</a>: <a href="https://github.com/sponsors/webknjaz">https://github.com/sponsors/webknjaz</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/211">#211</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/211">pytest-dev/pytest-mock#211</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">#215</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">pytest-dev/pytest-mock#215</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/216">pytest-dev/pytest-mock#216</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/cdd5d709f5d1e30526ca30ae93c64fbbaebcd58d"><code>cdd5d70</code></a> Update context-manager docs and prepare for 3.5.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/f623fa88211e07ac4965a9079afabe9f23334758"><code>f623fa8</code></a> Warn instead of raising exception in context manager (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/5f6cab7ead376d4f2de20c32bf01e244ffd44898"><code>5f6cab7</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/220">#220</a> from webknjaz/docs/216-changelog</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9771def1069d3f1560525799ec8ba9d8e2c75ed3"><code>9771def</code></a> Fix typos in a change note for the PR <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a></li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/d4e3f3edd4e085e6b4bc15930a440e759984352b"><code>d4e3f3e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/208">#208</a> from pytest-dev/graingert-patch-1</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/252eba86090fc0522c23805c097eb0c570a2c754"><code>252eba8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/219">#219</a> from nicoddemus/release-3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/df9ec17198d9c5d8e26eb91c892c5514b5793b02"><code>df9ec17</code></a> Prepare release 3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/91b4afb0b9ab3a454a2e8235da682e7287ab8f32"><code>91b4afb</code></a> Add testing for Python 3.9 (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/218">#218</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9640a36d06f1b35796e316d3b4529022e9d67fb7"><code>9640a36</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a> from webknjaz/bugfixes/215-spy-on-keyboard-interrupt</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/0e6b221080f5b8ef425a862ca45052131527894a"><code>0e6b221</code></a> Ensure all the exceptions cat be spied on</li>
<li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-mock/compare/v3.3.1...v3.5.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.3.1&new-version=3.5.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)
commonism pushed a commit to commonism/aiohttp that referenced this pull request Apr 27, 2021
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.3.1 to 3.5.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst">pytest-mock's changelog</a>.</em></p>
<blockquote>
<h2>3.5.0 (2021-01-04)</h2>
<ul>
<li>
<p>Now all patch functions will emit a warning instead of raising a <code>ValueError</code> when used
as a context-manager. Thanks <code>@iforapsy</code>_ for the PR (<code>[aio-libs#221](https://github.com/pytest-dev/pytest-mock/issues/221)</code>_).</p>
</li>
<li>
<p>Additionally, <code>mocker.patch.context_manager</code> is available when the user intends to mock
a context manager (for example  <code>threading.Lock</code> object), which will not emit that
warning.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/iforapsy">@iforapsy</a>: <a href="https://github.com/iforapsy">https://github.com/iforapsy</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/221">pytest-dev/pytest-mock#221</a></p>
<h2>3.4.0 (2020-12-15)</h2>
<ul>
<li>
<p>Add <code>mock.seal</code> alias to the <code>mocker</code> fixture (<code>[aio-libs#211](https://github.com/pytest-dev/pytest-mock/issues/211)</code><em>). Thanks <code>@coiax</code></em> for the PR.</p>
</li>
<li>
<p>Fixed spying on exceptions not covered by the <code>Exception</code>
superclass (<code>[aio-libs#215](https://github.com/pytest-dev/pytest-mock/issues/215)</code><em>), like <code>KeyboardInterrupt</code> -- PR <code>[aio-libs#216](https://github.com/pytest-dev/pytest-mock/issues/216)</code></em>
by <code>@webknjaz</code>_.</p>
<p>Before the fix, both <code>spy_return</code> and <code>spy_exception</code>
were always assigned to <code>None</code>
whenever such an exception happened. And after this fix,
<code>spy_exception</code> is set to a correct value of an exception
that has actually happened.</p>
</li>
</ul>
<p>.. _<a href="https://github.com/coiax">@coiax</a>: <a href="https://github.com/coiax">https://github.com/coiax</a>
.. _<a href="https://github.com/webknjaz">@webknjaz</a>: <a href="https://github.com/sponsors/webknjaz">https://github.com/sponsors/webknjaz</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/211">#211</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/211">pytest-dev/pytest-mock#211</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">#215</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/215">pytest-dev/pytest-mock#215</a>
.. _<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a>: <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/pull/216">pytest-dev/pytest-mock#216</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/cdd5d709f5d1e30526ca30ae93c64fbbaebcd58d"><code>cdd5d70</code></a> Update context-manager docs and prepare for 3.5.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/f623fa88211e07ac4965a9079afabe9f23334758"><code>f623fa8</code></a> Warn instead of raising exception in context manager (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/221">#221</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/5f6cab7ead376d4f2de20c32bf01e244ffd44898"><code>5f6cab7</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/220">#220</a> from webknjaz/docs/216-changelog</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9771def1069d3f1560525799ec8ba9d8e2c75ed3"><code>9771def</code></a> Fix typos in a change note for the PR <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a></li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/d4e3f3edd4e085e6b4bc15930a440e759984352b"><code>d4e3f3e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/208">#208</a> from pytest-dev/graingert-patch-1</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/252eba86090fc0522c23805c097eb0c570a2c754"><code>252eba8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/219">#219</a> from nicoddemus/release-3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/df9ec17198d9c5d8e26eb91c892c5514b5793b02"><code>df9ec17</code></a> Prepare release 3.4.0</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/91b4afb0b9ab3a454a2e8235da682e7287ab8f32"><code>91b4afb</code></a> Add testing for Python 3.9 (<a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/218">#218</a>)</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/9640a36d06f1b35796e316d3b4529022e9d67fb7"><code>9640a36</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/pytest-dev/pytest-mock/issues/216">#216</a> from webknjaz/bugfixes/215-spy-on-keyboard-interrupt</li>
<li><a href="https://github.com/pytest-dev/pytest-mock/commit/0e6b221080f5b8ef425a862ca45052131527894a"><code>0e6b221</code></a> Ensure all the exceptions cat be spied on</li>
<li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-mock/compare/v3.3.1...v3.5.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.3.1&new-version=3.5.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)
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.

Spy neither sets exception, nor return on non-Exception exceptions
3 participants