Skip to content

Commit 810fa89

Browse files
committed
Remove update_report
1 parent f8a7c66 commit 810fa89

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

src/_pytest/subtests.py

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,25 @@ def _from_json(cls, reportdict: dict[str, Any]) -> SubtestReport:
108108
return report
109109

110110
@classmethod
111-
def _from_test_report(
112-
cls, test_report: TestReport, context: SubtestContext
111+
def _new(
112+
cls,
113+
test_report: TestReport,
114+
context: SubtestContext,
115+
captured_output: Captured | None,
116+
captured_logs: CapturedLogs | None,
113117
) -> Self:
114118
result = super()._from_json(test_report._to_json())
115119
result.context = context
120+
121+
if captured_output:
122+
if captured_output.out:
123+
result.sections.append(("Captured stdout call", captured_output.out))
124+
if captured_output.err:
125+
result.sections.append(("Captured stderr call", captured_output.err))
126+
127+
if captured_logs and (log := captured_logs.handler.stream.getvalue()):
128+
result.sections.append(("Captured log call", log))
129+
116130
return result
117131

118132

@@ -242,17 +256,17 @@ def __exit__(
242256
report = self.ihook.pytest_runtest_makereport(
243257
item=self.request.node, call=call_info
244258
)
245-
sub_report = SubtestReport._from_test_report(
246-
report, SubtestContext(msg=self.msg, kwargs=self.kwargs)
259+
sub_report = SubtestReport._new(
260+
report,
261+
SubtestContext(msg=self.msg, kwargs=self.kwargs),
262+
captured_output=self._captured_output,
263+
captured_logs=self._captured_logs,
247264
)
248265

249266
if sub_report.failed:
250267
failed_subtests = self.config.stash[failed_subtests_key]
251268
failed_subtests[self.request.node.nodeid] += 1
252269

253-
self._captured_output.update_report(sub_report)
254-
self._captured_logs.update_report(sub_report)
255-
256270
with self.suspend_capture_ctx():
257271
self.ihook.pytest_runtest_logreport(report=sub_report)
258272

@@ -299,10 +313,10 @@ def capturing_output(request: SubRequest) -> Iterator[Captured]:
299313
@contextmanager
300314
def capturing_logs(
301315
request: SubRequest,
302-
) -> Iterator[CapturedLogs | NullCapturedLogs]:
316+
) -> Iterator[CapturedLogs | None]:
303317
logging_plugin = request.config.pluginmanager.getplugin("logging-plugin")
304318
if logging_plugin is None:
305-
yield NullCapturedLogs()
319+
yield None
306320
else:
307321
handler = LogCaptureHandler()
308322
handler.setFormatter(logging_plugin.formatter)
@@ -317,27 +331,11 @@ class Captured:
317331
out: str = ""
318332
err: str = ""
319333

320-
def update_report(self, report: TestReport) -> None:
321-
if self.out:
322-
report.sections.append(("Captured stdout call", self.out))
323-
if self.err:
324-
report.sections.append(("Captured stderr call", self.err))
325-
326334

327335
@dataclasses.dataclass
328336
class CapturedLogs:
329337
handler: LogCaptureHandler
330338

331-
def update_report(self, report: TestReport) -> None:
332-
captured_log = self.handler.stream.getvalue()
333-
if captured_log:
334-
report.sections.append(("Captured log call", captured_log))
335-
336-
337-
class NullCapturedLogs:
338-
def update_report(self, report: TestReport) -> None:
339-
pass
340-
341339

342340
def pytest_report_to_serializable(report: TestReport) -> dict[str, Any] | None:
343341
if isinstance(report, SubtestReport):

src/_pytest/unittest.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,9 +429,11 @@ def addSubTest(
429429
)
430430
msg = test._message if isinstance(test._message, str) else None # type: ignore[attr-defined]
431431
report = self.ihook.pytest_runtest_makereport(item=self, call=call_info)
432-
sub_report = SubtestReport._from_test_report(
432+
sub_report = SubtestReport._new(
433433
report,
434434
SubtestContext(msg=msg, kwargs=dict(test.params)), # type: ignore[attr-defined]
435+
captured_output=None,
436+
captured_logs=None,
435437
)
436438
self.ihook.pytest_runtest_logreport(report=sub_report)
437439
if check_interactive_exception(call_info, sub_report):

0 commit comments

Comments
 (0)