Skip to content

Commit

Permalink
fix double stdout
Browse files Browse the repository at this point in the history
  • Loading branch information
anb76ru committed Nov 15, 2022
1 parent bcd6c8e commit 5bee912
Showing 1 changed file with 26 additions and 24 deletions.
50 changes: 26 additions & 24 deletions src/_pytest/junitxml.py
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,32 @@ def pytest_runtest_logreport(self, report: TestReport) -> None:
reporter = self._opentestcase(report)
reporter.append_pass(report)
reporter.write_captured_output(report)

if report.when == "teardown":
reporter = self._opentestcase(report)
reporter.write_captured_output(report)

for propname, propvalue in report.user_properties:
reporter.add_property(propname, str(propvalue))

self.finalize(report)
report_wid = getattr(report, "worker_id", None)
report_ii = getattr(report, "item_index", None)
close_report = next(
(
rep
for rep in self.open_reports
if (
rep.nodeid == report.nodeid
and getattr(rep, "item_index", None) == report_ii
and getattr(rep, "worker_id", None) == report_wid
)
),
None,
)
if close_report:
self.open_reports.remove(close_report)

elif report.failed:
if report.when == "teardown":
# The following vars are needed when xdist plugin is used.
Expand Down Expand Up @@ -595,30 +621,6 @@ def pytest_runtest_logreport(self, report: TestReport) -> None:
reporter = self._opentestcase(report)
reporter.append_skipped(report)
self.update_testcase_duration(report)
if report.when == "teardown":
reporter = self._opentestcase(report)
reporter.write_captured_output(report)

for propname, propvalue in report.user_properties:
reporter.add_property(propname, str(propvalue))

self.finalize(report)
report_wid = getattr(report, "worker_id", None)
report_ii = getattr(report, "item_index", None)
close_report = next(
(
rep
for rep in self.open_reports
if (
rep.nodeid == report.nodeid
and getattr(rep, "item_index", None) == report_ii
and getattr(rep, "worker_id", None) == report_wid
)
),
None,
)
if close_report:
self.open_reports.remove(close_report)

def update_testcase_duration(self, report: TestReport) -> None:
"""Accumulate total duration for nodeid from given report and update
Expand Down

0 comments on commit 5bee912

Please sign in to comment.