def _capturing_output(self): option = self.request.config.getoption("capture", None) # capsys or capfd are active, subtest should not capture capture_fixture_active = hasattr(self.request.node, "_capture_fixture") if option == "sys" and not capture_fixture_active: fixture = CaptureFixture(SysCapture, self.request) elif option == "fd" and not capture_fixture_active: fixture = CaptureFixture(FDCapture, self.request) else: fixture = None if fixture is not None: fixture._start() captured = Captured() try: yield captured finally: if fixture is not None: out, err = fixture.readouterr() fixture.close() captured.out = out captured.err = err
def _capturing_output(self): option = self.request.config.getoption("capture", None) # capsys or capfd are active, subtest should not capture # pytest<5.4 support: node holds the active fixture capture_fixture_active = getattr(self.request.node, "_capture_fixture", None) if capture_fixture_active is None: # pytest>=5.4 support: capture manager plugin holds the active fixture capman = self.request.config.pluginmanager.getplugin("capturemanager") capture_fixture_active = getattr(capman, "_capture_fixture", None) if option == "sys" and not capture_fixture_active: fixture = CaptureFixture(SysCapture, self.request) elif option == "fd" and not capture_fixture_active: fixture = CaptureFixture(FDCapture, self.request) else: fixture = None if fixture is not None: fixture._start() captured = Captured() try: yield captured finally: if fixture is not None: out, err = fixture.readouterr() fixture.close() captured.out = out captured.err = err