Merge pull request #4229 from nicoddemus/fix-warning-location
Show node that originated a warning in the warnings summary
This commit is contained in:
commit
f6dfca7182
|
@ -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.
|
|
@ -725,11 +725,10 @@ class TerminalReporter(object):
|
||||||
# legacy warnings show their location explicitly, while standard warnings look better without
|
# legacy warnings show their location explicitly, while standard warnings look better without
|
||||||
# it because the location is already formatted into the message
|
# it because the location is already formatted into the message
|
||||||
warning_records = list(warning_records)
|
warning_records = list(warning_records)
|
||||||
is_legacy = warning_records[0].legacy
|
if location:
|
||||||
if location and is_legacy:
|
|
||||||
self._tw.line(str(location))
|
self._tw.line(str(location))
|
||||||
for w in warning_records:
|
for w in warning_records:
|
||||||
if is_legacy:
|
if location:
|
||||||
lines = w.message.splitlines()
|
lines = w.message.splitlines()
|
||||||
indented = "\n".join(" " + x for x in lines)
|
indented = "\n".join(" " + x for x in lines)
|
||||||
message = indented.rstrip()
|
message = indented.rstrip()
|
||||||
|
|
|
@ -48,6 +48,7 @@ def test_normal_flow(testdir, pyfile_with_warnings):
|
||||||
result.stdout.fnmatch_lines(
|
result.stdout.fnmatch_lines(
|
||||||
[
|
[
|
||||||
"*== %s ==*" % WARNINGS_SUMMARY_HEADER,
|
"*== %s ==*" % WARNINGS_SUMMARY_HEADER,
|
||||||
|
"test_normal_flow.py::test_func",
|
||||||
"*normal_flow_module.py:3: UserWarning: user warning",
|
"*normal_flow_module.py:3: UserWarning: user warning",
|
||||||
'* warnings.warn(UserWarning("user warning"))',
|
'* warnings.warn(UserWarning("user warning"))',
|
||||||
"*normal_flow_module.py:4: RuntimeWarning: runtime warning",
|
"*normal_flow_module.py:4: RuntimeWarning: runtime warning",
|
||||||
|
@ -369,8 +370,8 @@ def test_collection_warnings(testdir):
|
||||||
result.stdout.fnmatch_lines(
|
result.stdout.fnmatch_lines(
|
||||||
[
|
[
|
||||||
"*== %s ==*" % WARNINGS_SUMMARY_HEADER,
|
"*== %s ==*" % WARNINGS_SUMMARY_HEADER,
|
||||||
"*collection_warnings.py:3: UserWarning: collection warning",
|
" *collection_warnings.py:3: UserWarning: collection warning",
|
||||||
' warnings.warn(UserWarning("collection warning"))',
|
' warnings.warn(UserWarning("collection warning"))',
|
||||||
"* 1 passed, 1 warnings*",
|
"* 1 passed, 1 warnings*",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue