From 915d4c1888689c62ba4ec15af34c17cedb2de9a0 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Mon, 24 Oct 2022 06:57:36 -0400 Subject: [PATCH] wip: #1280 --- coverage/python.py | 9 ++++++++- coverage/xmlreport.py | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/coverage/python.py b/coverage/python.py index da43e6e8b..c8b8e774b 100644 --- a/coverage/python.py +++ b/coverage/python.py @@ -151,7 +151,14 @@ def __init__(self, morf, coverage=None): filename = source_for_morf(morf) - super().__init__(canonical_filename(filename)) + fname = filename + canonicalize = True + if self.coverage is not None: + if self.coverage.config.relative_files: + canonicalize = False + if canonicalize: + fname = canonical_filename(filename) + super().__init__(fname) if hasattr(morf, '__name__'): name = morf.__name__.replace(".", os.sep) diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index 2c34cb546..5eb940bf6 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -149,7 +149,8 @@ def xml_file(self, fr, analysis, has_arcs): # are populated later. Note that a package == a directory. filename = fr.filename.replace("\\", "/") for source_path in self.source_paths: - source_path = files.canonical_filename(source_path) + if not self.config.relative_files: + source_path = files.canonical_filename(source_path) if filename.startswith(source_path.replace("\\", "/") + "/"): rel_name = filename[len(source_path)+1:] break