diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2021-12-09 12:24:12 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2021-12-12 15:36:37 -0500 |
commit | b8a2153e8711d0275f71e9e66e566d49750e8360 (patch) | |
tree | 917f481f91866864156cd3cb53d1c03e7e8706cb /tests | |
parent | 03d9059877ffe148966e2c0022b3275eb6c02cfd (diff) | |
download | python-coveragepy-git-nedbat/pytest-7.tar.gz |
refactor(test): a context manager to swallow warningsnedbat/pytest-7
Diffstat (limited to 'tests')
-rw-r--r-- | tests/conftest.py | 5 | ||||
-rw-r--r-- | tests/helpers.py | 12 | ||||
-rw-r--r-- | tests/test_oddball.py | 5 | ||||
-rw-r--r-- | tests/test_plugins.py | 7 |
4 files changed, 24 insertions, 5 deletions
diff --git a/tests/conftest.py b/tests/conftest.py index 23d6b213..9189aa5c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -63,6 +63,11 @@ def set_warnings(): message=r".*imp module is deprecated in favour of importlib", ) + warnings.filterwarnings( + "ignore", + category=pytest.PytestRemovedIn8Warning, + ) + if env.PYPY: # pypy3 warns about unclosed files a lot. warnings.filterwarnings("ignore", r".*unclosed file", category=ResourceWarning) diff --git a/tests/helpers.py b/tests/helpers.py index 82d8b18f..c928c01e 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -12,6 +12,7 @@ import re import shutil import subprocess import textwrap +import warnings from unittest import mock @@ -301,3 +302,14 @@ def assert_coverage_warnings(warns, *msgs): assert expected.search(actual), f"{actual!r} didn't match {expected!r}" else: assert expected == actual + + +@contextlib.contextmanager +def swallow_warnings(message=r".", category=CoverageWarning): + """Swallow particular warnings. + + It's OK if they happen, or if they don't happen. Just ignore them. + """ + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", category=category, message=message) + yield diff --git a/tests/test_oddball.py b/tests/test_oddball.py index 2d0ae7f1..27f2db4d 100644 --- a/tests/test_oddball.py +++ b/tests/test_oddball.py @@ -15,6 +15,7 @@ from coverage.files import abs_file from coverage.misc import import_local_file from tests.coveragetest import CoverageTest +from tests.helpers import swallow_warnings from tests import osinfo @@ -81,7 +82,7 @@ class RecursionTest(CoverageTest): def test_long_recursion(self): # We can't finish a very deep recursion, but we don't crash. with pytest.raises(RuntimeError): - with pytest.warns(None): + with swallow_warnings("Trace function changed, measurement is likely wrong: None"): self.check_coverage("""\ def recur(n): if n == 0: @@ -118,7 +119,7 @@ class RecursionTest(CoverageTest): """) cov = coverage.Coverage() - with pytest.warns(None): + with swallow_warnings("Trace function changed, measurement is likely wrong: None"): self.start_import_stop(cov, "recur") pytrace = (cov._collector.tracer_name() == "PyTracer") diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 2140f00c..d50ff6d2 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -20,7 +20,7 @@ from coverage.misc import import_local_file import coverage.plugin from tests.coveragetest import CoverageTest -from tests.helpers import CheckUniqueFilenames +from tests.helpers import CheckUniqueFilenames, swallow_warnings class FakeConfig: @@ -193,8 +193,9 @@ class PluginTest(CoverageTest): cov = coverage.Coverage(debug=["sys"]) cov._debug_file = debug_out cov.set_option("run:plugins", ["plugin_sys_info"]) - with pytest.warns(None): - # Catch warnings so we don't see "plugins aren't supported on PyTracer" + with swallow_warnings( + r"Plugin file tracers \(plugin_sys_info.Plugin\) aren't supported with PyTracer" + ): cov.start() cov.stop() # pragma: nested |