Skip to content

Commit 8cdae52

Browse files
committed
refactor: parametrize a test for #1608
1 parent 4104428 commit 8cdae52

File tree

2 files changed

+9
-21
lines changed

2 files changed

+9
-21
lines changed

coverage/xmlreport.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ def __init__(self, coverage: Coverage) -> None:
6767
if self.config.source:
6868
for src in self.config.source:
6969
if os.path.exists(src):
70-
if not self.config.relative_files:
71-
src = files.canonical_filename(src)
72-
else:
70+
if self.config.relative_files:
7371
src = src.rstrip(r"\/")
72+
else:
73+
src = files.canonical_filename(src)
7474
self.source_paths.add(src)
7575
self.packages: Dict[str, PackageData] = {}
7676
self.xml_out: xml.dom.minidom.Document

tests/test_xml.py

+6-18
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import pytest
1616

1717
import coverage
18-
from coverage import Coverage
18+
from coverage import Coverage, env
1919
from coverage.exceptions import NoDataError
2020
from coverage.files import abs_file
2121
from coverage.misc import import_local_file
@@ -476,28 +476,16 @@ def test_source_prefix(self) -> None:
476476
dom = ElementTree.parse("coverage.xml")
477477
self.assert_source(dom, "src")
478478

479-
def test_relative_source(self) -> None:
479+
@pytest.mark.parametrize("trail", ["", "/", "\\"])
480+
def test_relative_source(self, trail: str) -> None:
481+
if trail == "\\" and not env.WINDOWS:
482+
pytest.skip("trailing backslash is only for Windows")
480483
self.make_file("src/mod.py", "print(17)")
481-
cov = coverage.Coverage(source=["src"])
482-
cov.set_option("run:relative_files", True)
483-
self.start_import_stop(cov, "mod", modfile="src/mod.py")
484-
cov.xml_report()
485-
486-
with open("coverage.xml") as x:
487-
print(x.read())
488-
dom = ElementTree.parse("coverage.xml")
489-
elts = dom.findall(".//sources/source")
490-
assert [elt.text for elt in elts] == ["src"]
491-
492-
def test_relative_source_trailing_slash(self) -> None:
493-
self.make_file("src/mod.py", "print(17)")
494-
cov = coverage.Coverage(source=["src/"])
484+
cov = coverage.Coverage(source=[f"src{trail}"])
495485
cov.set_option("run:relative_files", True)
496486
self.start_import_stop(cov, "mod", modfile="src/mod.py")
497487
cov.xml_report()
498488

499-
with open("coverage.xml") as x:
500-
print(x.read())
501489
dom = ElementTree.parse("coverage.xml")
502490
elts = dom.findall(".//sources/source")
503491
assert [elt.text for elt in elts] == ["src"]

0 commit comments

Comments
 (0)