Skip to content

Commit 7789b51

Browse files
Issue 4677 - always relative path in skip report (#6953)
1 parent de6c28e commit 7789b51

File tree

5 files changed

+13
-7
lines changed

5 files changed

+13
-7
lines changed

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ Justyna Janczyszyn
148148
Kale Kundert
149149
Karl O. Pinc
150150
Katarzyna Jachim
151+
Katarzyna Król
151152
Katerina Koukiou
152153
Kevin Cox
153154
Kevin J. Foley

changelog/4677.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
The path shown in the summary report for SKIPPED tests is now always relative. Previously it was sometimes absolute.

src/_pytest/terminal.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,7 @@ def show_xpassed(lines: List[str]) -> None:
10271027

10281028
def show_skipped(lines: List[str]) -> None:
10291029
skipped = self.stats.get("skipped", [])
1030-
fskips = _folded_skips(skipped) if skipped else []
1030+
fskips = _folded_skips(self.startdir, skipped) if skipped else []
10311031
if not fskips:
10321032
return
10331033
verbose_word = skipped[0]._get_verbose_word(self.config)
@@ -1153,11 +1153,13 @@ def _get_line_with_reprcrash_message(config, rep, termwidth):
11531153
return line
11541154

11551155

1156-
def _folded_skips(skipped):
1156+
def _folded_skips(startdir, skipped):
11571157
d = {}
11581158
for event in skipped:
1159-
key = event.longrepr
1160-
assert len(key) == 3, (event, key)
1159+
assert len(event.longrepr) == 3, (event, event.longrepr)
1160+
fspath, lineno, reason = event.longrepr
1161+
# For consistency, report all fspaths in relative form.
1162+
fspath = startdir.bestrelpath(py.path.local(fspath))
11611163
keywords = getattr(event, "keywords", {})
11621164
# folding reports with global pytestmark variable
11631165
# this is workaround, because for now we cannot identify the scope of a skip marker
@@ -1167,7 +1169,9 @@ def _folded_skips(skipped):
11671169
and "skip" in keywords
11681170
and "pytestmark" not in keywords
11691171
):
1170-
key = (key[0], None, key[2])
1172+
key = (fspath, None, reason)
1173+
else:
1174+
key = (fspath, lineno, reason)
11711175
d.setdefault(key, []).append(event)
11721176
values = []
11731177
for key, events in d.items():

testing/test_skipping.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ def doskip():
758758
result = testdir.runpytest("-rs")
759759
result.stdout.fnmatch_lines_random(
760760
[
761-
"SKIPPED [[]2[]] */conftest.py:4: test",
761+
"SKIPPED [[]2[]] conftest.py:4: test",
762762
"SKIPPED [[]1[]] test_one.py:14: via_decorator",
763763
]
764764
)

testing/test_terminal.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2001,7 +2001,7 @@ class X:
20012001
ev3.longrepr = longrepr
20022002
ev3.skipped = True
20032003

2004-
values = _folded_skips([ev1, ev2, ev3])
2004+
values = _folded_skips(py.path.local(), [ev1, ev2, ev3])
20052005
assert len(values) == 1
20062006
num, fspath, lineno, reason = values[0]
20072007
assert num == 3

0 commit comments

Comments
 (0)