@@ -19,40 +19,50 @@ def tearDownModule():
19
19
class TestColorizeFunction (unittest .TestCase ):
20
20
@force_not_colorized
21
21
def test_colorized_detection_checks_for_environment_variables (self ):
22
- if sys .platform == "win32" :
23
- virtual_patching = unittest .mock .patch ("nt._supports_virtual_terminal" ,
24
- return_value = True )
25
- else :
26
- virtual_patching = contextlib .nullcontext ()
27
- with virtual_patching :
28
-
29
- flags = unittest .mock .MagicMock (ignore_environment = False )
30
- with (unittest .mock .patch ("os.isatty" ) as isatty_mock ,
31
- unittest .mock .patch ("sys.flags" , flags ),
32
- unittest .mock .patch ("_colorize.can_colorize" , ORIGINAL_CAN_COLORIZE )):
33
- isatty_mock .return_value = True
34
- with unittest .mock .patch ("os.environ" , {'TERM' : 'dumb' }):
35
- self .assertEqual (_colorize .can_colorize (), False )
36
- with unittest .mock .patch ("os.environ" , {'PYTHON_COLORS' : '1' }):
37
- self .assertEqual (_colorize .can_colorize (), True )
38
- with unittest .mock .patch ("os.environ" , {'PYTHON_COLORS' : '0' }):
39
- self .assertEqual (_colorize .can_colorize (), False )
40
- with unittest .mock .patch ("os.environ" , {'NO_COLOR' : '1' }):
22
+ flags = unittest .mock .MagicMock (ignore_environment = False )
23
+ with (unittest .mock .patch ("os.isatty" ) as isatty_mock ,
24
+ unittest .mock .patch ("sys.stderr" ) as stderr_mock ,
25
+ unittest .mock .patch ("sys.flags" , flags ),
26
+ unittest .mock .patch ("_colorize.can_colorize" , ORIGINAL_CAN_COLORIZE ),
27
+ (unittest .mock .patch ("nt._supports_virtual_terminal" , return_value = False )
28
+ if sys .platform == "win32" else
29
+ contextlib .nullcontext ()) as vt_mock ):
30
+
31
+ isatty_mock .return_value = True
32
+ stderr_mock .fileno .return_value = 2
33
+ stderr_mock .isatty .return_value = True
34
+ with unittest .mock .patch ("os.environ" , {'TERM' : 'dumb' }):
35
+ self .assertEqual (_colorize .can_colorize (), False )
36
+ with unittest .mock .patch ("os.environ" , {'PYTHON_COLORS' : '1' }):
37
+ self .assertEqual (_colorize .can_colorize (), True )
38
+ with unittest .mock .patch ("os.environ" , {'PYTHON_COLORS' : '0' }):
39
+ self .assertEqual (_colorize .can_colorize (), False )
40
+ with unittest .mock .patch ("os.environ" , {'NO_COLOR' : '1' }):
41
+ self .assertEqual (_colorize .can_colorize (), False )
42
+ with unittest .mock .patch ("os.environ" ,
43
+ {'NO_COLOR' : '1' , "PYTHON_COLORS" : '1' }):
44
+ self .assertEqual (_colorize .can_colorize (), True )
45
+ with unittest .mock .patch ("os.environ" , {'FORCE_COLOR' : '1' }):
46
+ self .assertEqual (_colorize .can_colorize (), True )
47
+ with unittest .mock .patch ("os.environ" ,
48
+ {'FORCE_COLOR' : '1' , 'NO_COLOR' : '1' }):
49
+ self .assertEqual (_colorize .can_colorize (), False )
50
+ with unittest .mock .patch ("os.environ" ,
51
+ {'FORCE_COLOR' : '1' , "PYTHON_COLORS" : '0' }):
52
+ self .assertEqual (_colorize .can_colorize (), False )
53
+
54
+ with unittest .mock .patch ("os.environ" , {}):
55
+ if sys .platform == "win32" :
41
56
self .assertEqual (_colorize .can_colorize (), False )
42
- with unittest . mock . patch ( "os.environ" ,
43
- { 'NO_COLOR' : '1' , "PYTHON_COLORS" : '1' }):
57
+
58
+ vt_mock . return_value = True
44
59
self .assertEqual (_colorize .can_colorize (), True )
45
- with unittest . mock . patch ( "os.environ" , { 'FORCE_COLOR' : '1' }) :
60
+ else :
46
61
self .assertEqual (_colorize .can_colorize (), True )
47
- with unittest .mock .patch ("os.environ" ,
48
- {'FORCE_COLOR' : '1' , 'NO_COLOR' : '1' }):
49
- self .assertEqual (_colorize .can_colorize (), False )
50
- with unittest .mock .patch ("os.environ" ,
51
- {'FORCE_COLOR' : '1' , "PYTHON_COLORS" : '0' }):
52
- self .assertEqual (_colorize .can_colorize (), False )
62
+
53
63
isatty_mock .return_value = False
54
- with unittest . mock . patch ( "os.environ" , {}):
55
- self .assertEqual (_colorize .can_colorize (), False )
64
+ stderr_mock . isatty . return_value = False
65
+ self .assertEqual (_colorize .can_colorize (), False )
56
66
57
67
58
68
if __name__ == "__main__" :
0 commit comments