Skip to content

Commit 25edc1e

Browse files
authored
Add parametrized tests for should_strip_ansi (#2731)
2 parents 0cd28d6 + cf0c36d commit 25edc1e

1 file changed

Lines changed: 47 additions & 2 deletions

File tree

tests/test_compat.py

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
from click._compat import should_strip_ansi
1+
from __future__ import annotations
2+
3+
import sys
4+
5+
import pytest
6+
7+
import click
28

39

410
def test_is_jupyter_kernel_output():
@@ -7,4 +13,43 @@ class JupyterKernelFakeStream:
713

814
# implementation detail, aka cheapskate test
915
JupyterKernelFakeStream.__module__ = "ipykernel.faked"
10-
assert not should_strip_ansi(stream=JupyterKernelFakeStream())
16+
assert click._compat._is_jupyter_kernel_output(stream=JupyterKernelFakeStream())
17+
18+
19+
@pytest.mark.parametrize(
20+
"stream",
21+
[None, sys.stdin, sys.stderr, sys.stdout],
22+
)
23+
@pytest.mark.parametrize(
24+
("color", "expected_override"),
25+
[
26+
(True, False),
27+
(False, True),
28+
(None, None),
29+
],
30+
)
31+
@pytest.mark.parametrize(
32+
("isatty", "is_jupyter", "expected"),
33+
[
34+
(True, False, False),
35+
(False, True, False),
36+
(False, False, True),
37+
],
38+
)
39+
def test_should_strip_ansi(
40+
monkeypatch,
41+
stream,
42+
color: bool | None,
43+
expected_override: bool | None,
44+
isatty: bool,
45+
is_jupyter: bool,
46+
expected: bool,
47+
) -> None:
48+
monkeypatch.setattr(click._compat, "isatty", lambda x: isatty)
49+
monkeypatch.setattr(
50+
click._compat, "_is_jupyter_kernel_output", lambda x: is_jupyter
51+
)
52+
53+
if expected_override is not None:
54+
expected = expected_override
55+
assert click._compat.should_strip_ansi(stream=stream, color=color) == expected

0 commit comments

Comments
 (0)