summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-12-09 12:24:12 -0500
committerNed Batchelder <ned@nedbatchelder.com>2021-12-12 15:36:37 -0500
commitb8a2153e8711d0275f71e9e66e566d49750e8360 (patch)
tree917f481f91866864156cd3cb53d1c03e7e8706cb
parent03d9059877ffe148966e2c0022b3275eb6c02cfd (diff)
downloadpython-coveragepy-git-nedbat/pytest-7.tar.gz
refactor(test): a context manager to swallow warningsnedbat/pytest-7
-rw-r--r--tests/conftest.py5
-rw-r--r--tests/helpers.py12
-rw-r--r--tests/test_oddball.py5
-rw-r--r--tests/test_plugins.py7
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