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
410def 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