diff options
-rw-r--r-- | coverage/pytracer.py | 8 | ||||
-rw-r--r-- | tests/test_oddball.py | 9 |
2 files changed, 13 insertions, 4 deletions
diff --git a/coverage/pytracer.py b/coverage/pytracer.py index 7709df34..186eb427 100644 --- a/coverage/pytracer.py +++ b/coverage/pytracer.py @@ -68,7 +68,7 @@ class PyTracer: atexit.register(setattr, self, 'in_atexit', True) def __repr__(self): - return "<PyTracer at {}: {} lines in {} files>".format( + return "<PyTracer at 0x{:x}: {} lines in {} files>".format( id(self), sum(len(v) for v in self.data.values()), len(self.data), @@ -267,8 +267,10 @@ class PyTracer: # has changed to None. dont_warn = (env.PYPY and env.PYPYVERSION >= (5, 4) and self.in_atexit and tf is None) if (not dont_warn) and tf != self._trace: # pylint: disable=comparison-with-callable - msg = f"Trace function changed, measurement is likely wrong: {tf!r}" - self.warn(msg, slug="trace-changed") + self.warn( + f"Trace function changed, data is likely wrong: {tf!r} != {self._trace!r}", + slug="trace-changed", + ) def activity(self): """Has there been any activity?""" diff --git a/tests/test_oddball.py b/tests/test_oddball.py index 2d0ae7f1..e2c17517 100644 --- a/tests/test_oddball.py +++ b/tests/test_oddball.py @@ -4,6 +4,7 @@ """Oddball cases for testing coverage.py""" import os.path +import re import sys from flaky import flaky @@ -132,7 +133,13 @@ class RecursionTest(CoverageTest): # Get a warning about the stackoverflow effect on the tracing function. if pytrace: # pragma: no metacov - assert cov._warnings == ["Trace function changed, measurement is likely wrong: None"] + assert len(cov._warnings) == 1 + assert re.fullmatch( + r"Trace function changed, data is likely wrong: None != " + + r"<bound method PyTracer._trace of " + + "<PyTracer at 0x[0-9a-fA-F]+: 5 lines in 1 files>>", + cov._warnings[0], + ) else: assert not cov._warnings |