From 65d9e0edbca0dc893ca70fbf64969e2ddc5a3680 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Mon, 31 May 2021 14:36:08 -0400 Subject: test: better checking for CoverageWarnings On Python 3.10, we were getting other warnings mixed into the warnings the tests were looking for. This change lets us only look at the CoverageWarnings. --- tests/conftest.py | 2 +- tests/helpers.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/conftest.py b/tests/conftest.py index c84f446a..4ae11542 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -27,7 +27,7 @@ pytest.register_assert_rewrite("tests.helpers") @pytest.fixture(autouse=True) def set_warnings(): - """Enable DeprecationWarnings during all tests.""" + """Configure warnings to show while running tests.""" warnings.simplefilter("default") warnings.simplefilter("once", DeprecationWarning) diff --git a/tests/helpers.py b/tests/helpers.py index 40b0f481..3b0e1283 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -265,11 +265,11 @@ def assert_count_equal(a, b): def assert_coverage_warnings(warns, *msgs): """ - Assert that `warns` are all CoverageWarning's, and have `msgs` as messages. + Assert that the CoverageWarning's in `warns` have `msgs` as messages. """ assert msgs # don't call this without some messages. + warns = [w for w in warns if issubclass(w.category, CoverageWarning)] assert len(warns) == len(msgs) - assert all(w.category == CoverageWarning for w in warns) for actual, expected in zip((w.message.args[0] for w in warns), msgs): if hasattr(expected, "search"): assert expected.search(actual), f"{actual!r} didn't match {expected!r}" -- cgit v1.2.1