Skip to content

Commit

Permalink
Show node that originated a warning in the warnings summary
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoddemus committed Oct 24, 2018
1 parent 9df1b03 commit a560145
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 5 deletions.
1 change: 1 addition & 0 deletions changelog/4221.bugfix.rst
@@ -0,0 +1 @@
Fix bug where the warning summary at the end of the test session was not showing the test where the warning was originated.
5 changes: 2 additions & 3 deletions src/_pytest/terminal.py
Expand Up @@ -725,11 +725,10 @@ def summary_warnings(self):
# legacy warnings show their location explicitly, while standard warnings look better without
# it because the location is already formatted into the message
warning_records = list(warning_records)
is_legacy = warning_records[0].legacy
if location and is_legacy:
if location:
self._tw.line(str(location))
for w in warning_records:
if is_legacy:
if location:
lines = w.message.splitlines()
indented = "\n".join(" " + x for x in lines)
message = indented.rstrip()
Expand Down
5 changes: 3 additions & 2 deletions testing/test_warnings.py
Expand Up @@ -48,6 +48,7 @@ def test_normal_flow(testdir, pyfile_with_warnings):
result.stdout.fnmatch_lines(
[
"*== %s ==*" % WARNINGS_SUMMARY_HEADER,
"test_normal_flow.py::test_func",
"*normal_flow_module.py:3: UserWarning: user warning",
'* warnings.warn(UserWarning("user warning"))',
"*normal_flow_module.py:4: RuntimeWarning: runtime warning",
Expand Down Expand Up @@ -369,8 +370,8 @@ def test_foo():
result.stdout.fnmatch_lines(
[
"*== %s ==*" % WARNINGS_SUMMARY_HEADER,
"*collection_warnings.py:3: UserWarning: collection warning",
' warnings.warn(UserWarning("collection warning"))',
" *collection_warnings.py:3: UserWarning: collection warning",
' warnings.warn(UserWarning("collection warning"))',
"* 1 passed, 1 warnings*",
]
)
Expand Down

0 comments on commit a560145

Please sign in to comment.