Skip to content

Commit 4fc9758

Browse files
Use relative paths in Coverage.py configuration
1 parent c0daf78 commit 4fc9758

4 files changed

Lines changed: 45 additions & 0 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ log_cli_level = "INFO"
169169
minversion = "7"
170170

171171
[tool.coverage.run]
172+
relative_files = true
172173
source = [ "src" ]
173174
omit = [ "*/pytest-of-*/*", "*/_temp/*" ]
174175

src/usethis/_tool/impl/coverage_py.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,32 @@ def _get_source():
147147
),
148148
},
149149
),
150+
ConfigItem(
151+
# https://github.com/usethis-python/usethis-python/issues/930
152+
# This config helps ensure reports generated in CI environments
153+
# have consistent paths between jobs, by forcing them to be relative
154+
description="Relative Files Configuration",
155+
root={
156+
Path(".coveragerc"): ConfigEntry(
157+
keys=["run", "relative_files"], get_value=lambda: "true"
158+
),
159+
Path(".coveragerc.toml"): ConfigEntry(
160+
keys=["run", "relative_files"], get_value=lambda: True
161+
),
162+
Path("setup.cfg"): ConfigEntry(
163+
keys=["coverage:run", "relative_files"],
164+
get_value=lambda: "true",
165+
),
166+
Path("tox.ini"): ConfigEntry(
167+
keys=["coverage:run", "relative_files"],
168+
get_value=lambda: "true",
169+
),
170+
Path("pyproject.toml"): ConfigEntry(
171+
keys=["tool", "coverage", "run", "relative_files"],
172+
get_value=lambda: True,
173+
),
174+
},
175+
),
150176
ConfigItem(
151177
description="Report Configuration",
152178
root={

tests/usethis/_core/test_core_tool.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ def test_coverage_rc_file(self, uv_init_dir: Path):
436436
[run]
437437
source =
438438
src
439+
relative_files = true
439440
440441
[report]
441442
exclude_also =
@@ -464,6 +465,7 @@ def test_tox_ini_file(self, uv_init_dir: Path):
464465
[coverage:run]
465466
source =
466467
src
468+
relative_files = true
467469
468470
[coverage:report]
469471
exclude_also =

tests/usethis/_tool/impl/test_coverage_py.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,19 @@ def test_coveragerc_preferred_over_coveragerc_toml(self, tmp_path: Path):
107107
assert (tmp_path / ".coveragerc.toml").read_text() == (
108108
'[run]\nsource = ["existing"]\n'
109109
)
110+
111+
def test_relative_files_set_to_true(self, tmp_path: Path):
112+
# Arrange
113+
(tmp_path / "pyproject.toml").write_text("""\
114+
[project]
115+
name = "example"
116+
version = "0.1.0"
117+
""")
118+
119+
# Act
120+
with change_cwd(tmp_path), files_manager():
121+
CoveragePyTool().add_configs()
122+
123+
# Assert
124+
content = (tmp_path / "pyproject.toml").read_text()
125+
assert "relative_files = true" in content

0 commit comments

Comments
 (0)