summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorAndrey Efremov <duxus@yandex.ru>2024-12-14 15:25:49 (GMT)
committerGitHub <noreply@github.com>2024-12-14 15:25:49 (GMT)
commit0ac40acec045c4ce780cf7d887fcbe4c661e82b7 (patch)
tree89660667a79353dd552ef04ddb9c159b7bfe53d8 /Lib/test
parente2325c9db0650fc06d909eb2b5930c0573f24f71 (diff)
downloadcpython-0ac40acec045c4ce780cf7d887fcbe4c661e82b7.zip
cpython-0ac40acec045c4ce780cf7d887fcbe4c661e82b7.tar.gz
cpython-0ac40acec045c4ce780cf7d887fcbe4c661e82b7.tar.bz2
gh-127353: Allow to force color output on Windows V2 (#127926)
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test__colorize.py70
1 files changed, 40 insertions, 30 deletions
diff --git a/Lib/test/test__colorize.py b/Lib/test/test__colorize.py
index d55b97a..1871775 100644
--- a/Lib/test/test__colorize.py
+++ b/Lib/test/test__colorize.py
@@ -19,40 +19,50 @@ def tearDownModule():
class TestColorizeFunction(unittest.TestCase):
@force_not_colorized
def test_colorized_detection_checks_for_environment_variables(self):
- if sys.platform == "win32":
- virtual_patching = unittest.mock.patch("nt._supports_virtual_terminal",
- return_value=True)
- else:
- virtual_patching = contextlib.nullcontext()
- with virtual_patching:
-
- flags = unittest.mock.MagicMock(ignore_environment=False)
- with (unittest.mock.patch("os.isatty") as isatty_mock,
- unittest.mock.patch("sys.flags", flags),
- unittest.mock.patch("_colorize.can_colorize", ORIGINAL_CAN_COLORIZE)):
- isatty_mock.return_value = True
- with unittest.mock.patch("os.environ", {'TERM': 'dumb'}):
- self.assertEqual(_colorize.can_colorize(), False)
- with unittest.mock.patch("os.environ", {'PYTHON_COLORS': '1'}):
- self.assertEqual(_colorize.can_colorize(), True)
- with unittest.mock.patch("os.environ", {'PYTHON_COLORS': '0'}):
- self.assertEqual(_colorize.can_colorize(), False)
- with unittest.mock.patch("os.environ", {'NO_COLOR': '1'}):
+ flags = unittest.mock.MagicMock(ignore_environment=False)
+ with (unittest.mock.patch("os.isatty") as isatty_mock,
+ unittest.mock.patch("sys.stderr") as stderr_mock,
+ unittest.mock.patch("sys.flags", flags),
+ unittest.mock.patch("_colorize.can_colorize", ORIGINAL_CAN_COLORIZE),
+ (unittest.mock.patch("nt._supports_virtual_terminal", return_value=False)
+ if sys.platform == "win32" else
+ contextlib.nullcontext()) as vt_mock):
+
+ isatty_mock.return_value = True
+ stderr_mock.fileno.return_value = 2
+ stderr_mock.isatty.return_value = True
+ with unittest.mock.patch("os.environ", {'TERM': 'dumb'}):
+ self.assertEqual(_colorize.can_colorize(), False)
+ with unittest.mock.patch("os.environ", {'PYTHON_COLORS': '1'}):
+ self.assertEqual(_colorize.can_colorize(), True)
+ with unittest.mock.patch("os.environ", {'PYTHON_COLORS': '0'}):
+ self.assertEqual(_colorize.can_colorize(), False)
+ with unittest.mock.patch("os.environ", {'NO_COLOR': '1'}):
+ self.assertEqual(_colorize.can_colorize(), False)
+ with unittest.mock.patch("os.environ",
+ {'NO_COLOR': '1', "PYTHON_COLORS": '1'}):
+ self.assertEqual(_colorize.can_colorize(), True)
+ with unittest.mock.patch("os.environ", {'FORCE_COLOR': '1'}):
+ self.assertEqual(_colorize.can_colorize(), True)
+ with unittest.mock.patch("os.environ",
+ {'FORCE_COLOR': '1', 'NO_COLOR': '1'}):
+ self.assertEqual(_colorize.can_colorize(), False)
+ with unittest.mock.patch("os.environ",
+ {'FORCE_COLOR': '1', "PYTHON_COLORS": '0'}):
+ self.assertEqual(_colorize.can_colorize(), False)
+
+ with unittest.mock.patch("os.environ", {}):
+ if sys.platform == "win32":
self.assertEqual(_colorize.can_colorize(), False)
- with unittest.mock.patch("os.environ",
- {'NO_COLOR': '1', "PYTHON_COLORS": '1'}):
+
+ vt_mock.return_value = True
self.assertEqual(_colorize.can_colorize(), True)
- with unittest.mock.patch("os.environ", {'FORCE_COLOR': '1'}):
+ else:
self.assertEqual(_colorize.can_colorize(), True)
- with unittest.mock.patch("os.environ",
- {'FORCE_COLOR': '1', 'NO_COLOR': '1'}):
- self.assertEqual(_colorize.can_colorize(), False)
- with unittest.mock.patch("os.environ",
- {'FORCE_COLOR': '1', "PYTHON_COLORS": '0'}):
- self.assertEqual(_colorize.can_colorize(), False)
+
isatty_mock.return_value = False
- with unittest.mock.patch("os.environ", {}):
- self.assertEqual(_colorize.can_colorize(), False)
+ stderr_mock.isatty.return_value = False
+ self.assertEqual(_colorize.can_colorize(), False)
if __name__ == "__main__":