capture_output: only start capturing when we enter the with statement

This commit is contained in:
Jörg Thalheim
2024-08-21 15:01:14 +02:00
parent d6b70f8fd7
commit d20287f9e3

View File

@@ -7,8 +7,11 @@ from pytest import CaptureFixture
class CaptureOutput:
def __init__(self, capsys: CaptureFixture) -> None:
self.capsys = capsys
self.capsys_disabled = capsys.disabled()
self.capsys_disabled.__enter__()
def __enter__(self) -> "CaptureOutput":
self.capsys_disabled.__exit__(None, None, None)
self.capsys.readouterr()
return self
@@ -17,6 +20,11 @@ class CaptureOutput:
self.out = res.out
self.err = res.err
# Disable capsys again
self.capsys_disabled = self.capsys.disabled()
self.capsys_disabled.__enter__()
return False
@pytest.fixture
def capture_output(capsys: CaptureFixture) -> CaptureOutput: