Skip to content

Commit 4dc45cd

Browse files
author
Ronak Bhalgami
committed
tests: add regression test for capteesys with -s; fix tee-only behavior
1 parent 77a45fe commit 4dc45cd

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

src/_pytest/capture.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,14 +1049,20 @@ def test_output(capteesys):
10491049
assert captured.out == "hello\n"
10501050
"""
10511051
capman: CaptureManager = request.config.pluginmanager.getplugin("capturemanager")
1052-
capture_fixture = CaptureFixture(
1053-
SysCapture, request, config=dict(tee=True), _ispytest=True
1054-
)
1055-
capman.set_fixture(capture_fixture)
1056-
capture_fixture._start()
1057-
yield capture_fixture
1058-
capture_fixture.close()
1059-
capman.unset_fixture()
1052+
if capman.is_globally_capturing():
1053+
capture_fixture = CaptureFixture(
1054+
SysCapture, request, config=dict(tee=True), _ispytest=True
1055+
)
1056+
capman.set_fixture(capture_fixture)
1057+
capture_fixture._start()
1058+
yield capture_fixture
1059+
capture_fixture.close()
1060+
capman.unset_fixture()
1061+
else:
1062+
# capteesys does nothing when global capturing is disabled.
1063+
# This is so that the "tee" part of cap-tee-sys is not
1064+
# implemented without the "cap" part.
1065+
yield CaptureFixture(SysCapture, request, _ispytest=True)
10601066

10611067

10621068
@fixture

testing/test_capteesys_issue.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import annotations
2+
3+
import sys
4+
from typing import TYPE_CHECKING
5+
6+
7+
if TYPE_CHECKING:
8+
from _pytest.capture import CaptureFixture
9+
from _pytest.fixtures import SubRequest
10+
11+
12+
def test_dummy_test_with_traceback(
13+
request: SubRequest, capteesys: CaptureFixture[str]
14+
) -> None:
15+
print("Hello world stdout", flush=True)
16+
print("Hello world stderr", file=sys.stderr, flush=True)

0 commit comments

Comments
 (0)