summaryrefslogtreecommitdiff
path: root/tests/helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/helpers.py')
-rw-r--r--tests/helpers.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/helpers.py b/tests/helpers.py
index 21459cd4..369875b9 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -14,6 +14,7 @@ import textwrap
from unittest import mock
+from coverage.exceptions import CoverageWarning
from coverage.misc import output_encoding
@@ -262,3 +263,17 @@ def assert_count_equal(a, b):
This only works for hashable elements.
"""
assert collections.Counter(list(a)) == collections.Counter(list(b))
+
+
+def assert_coverage_warnings(warns, *msgs):
+ """
+ Assert that `warns` are all CoverageWarning's, and have `msgs` as messages.
+ """
+ assert msgs # don't call this without some messages.
+ 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}"
+ else:
+ assert expected == actual