(request: SubRequest)
| 286 | |
| 287 | @contextmanager |
| 288 | def capturing_output(request: SubRequest) -> Iterator[Captured]: |
| 289 | option = request.config.getoption("capture", None) |
| 290 | |
| 291 | capman = request.config.pluginmanager.getplugin("capturemanager") |
| 292 | if getattr(capman, "_capture_fixture", None): |
| 293 | # capsys or capfd are active, subtest should not capture. |
| 294 | fixture = None |
| 295 | elif option == "sys": |
| 296 | fixture = CaptureFixture(SysCapture, request, _ispytest=True) |
| 297 | elif option == "fd": |
| 298 | fixture = CaptureFixture(FDCapture, request, _ispytest=True) |
| 299 | else: |
| 300 | fixture = None |
| 301 | |
| 302 | if fixture is not None: |
| 303 | fixture._start() |
| 304 | |
| 305 | captured = Captured() |
| 306 | try: |
| 307 | yield captured |
| 308 | finally: |
| 309 | if fixture is not None: |
| 310 | out, err = fixture.readouterr() |
| 311 | fixture.close() |
| 312 | captured.out = out |
| 313 | captured.err = err |
| 314 | |
| 315 | |
| 316 | @contextmanager |
no test coverage detected