|
25 | 25 | import json
|
26 | 26 | import textwrap
|
27 | 27 | import traceback
|
| 28 | +import contextlib |
28 | 29 | from functools import partial
|
29 | 30 | from pathlib import Path
|
30 | 31 |
|
@@ -4314,24 +4315,29 @@ def foo():
|
4314 | 4315 | self.assertEqual(actual, expected)
|
4315 | 4316 |
|
4316 | 4317 | def test_colorized_detection_checks_for_environment_variables(self):
|
4317 |
| - with unittest.mock.patch("os.isatty") as isatty_mock: |
4318 |
| - isatty_mock.return_value = True |
4319 |
| - with unittest.mock.patch("os.environ", {'TERM': 'dumb'}): |
4320 |
| - self.assertEqual(traceback._can_colorize(), False) |
4321 |
| - with unittest.mock.patch("os.environ", {'PY_COLORS': '1'}): |
4322 |
| - self.assertEqual(traceback._can_colorize(), True) |
4323 |
| - with unittest.mock.patch("os.environ", {'PY_COLORS': '0'}): |
4324 |
| - self.assertEqual(traceback._can_colorize(), False) |
4325 |
| - with unittest.mock.patch("os.environ", {'NO_COLOR': '1'}): |
4326 |
| - self.assertEqual(traceback._can_colorize(), False) |
4327 |
| - with unittest.mock.patch("os.environ", {'NO_COLOR': '1', "PY_COLORS": '1'}): |
4328 |
| - self.assertEqual(traceback._can_colorize(), False) |
4329 |
| - with unittest.mock.patch("os.environ", {'FORCE_COLOR': '1'}): |
4330 |
| - self.assertEqual(traceback._can_colorize(), True) |
4331 |
| - with unittest.mock.patch("os.environ", {'FORCE_COLOR': '1', 'NO_COLOR': '1'}): |
| 4318 | + if sys.platform == "win32": |
| 4319 | + virtual_patching = unittest.mock.patch("nt._supports_virtual_terminal", return_value=True) |
| 4320 | + else: |
| 4321 | + virtual_patching = contextlib.nullcontext() |
| 4322 | + with virtual_patching: |
| 4323 | + with unittest.mock.patch("os.isatty") as isatty_mock: |
| 4324 | + isatty_mock.return_value = True |
| 4325 | + with unittest.mock.patch("os.environ", {'TERM': 'dumb'}): |
| 4326 | + self.assertEqual(traceback._can_colorize(), False) |
| 4327 | + with unittest.mock.patch("os.environ", {'PY_COLORS': '1'}): |
| 4328 | + self.assertEqual(traceback._can_colorize(), True) |
| 4329 | + with unittest.mock.patch("os.environ", {'PY_COLORS': '0'}): |
| 4330 | + self.assertEqual(traceback._can_colorize(), False) |
| 4331 | + with unittest.mock.patch("os.environ", {'NO_COLOR': '1'}): |
| 4332 | + self.assertEqual(traceback._can_colorize(), False) |
| 4333 | + with unittest.mock.patch("os.environ", {'NO_COLOR': '1', "PY_COLORS": '1'}): |
| 4334 | + self.assertEqual(traceback._can_colorize(), False) |
| 4335 | + with unittest.mock.patch("os.environ", {'FORCE_COLOR': '1'}): |
| 4336 | + self.assertEqual(traceback._can_colorize(), True) |
| 4337 | + with unittest.mock.patch("os.environ", {'FORCE_COLOR': '1', 'NO_COLOR': '1'}): |
| 4338 | + self.assertEqual(traceback._can_colorize(), False) |
| 4339 | + isatty_mock.return_value = False |
4332 | 4340 | self.assertEqual(traceback._can_colorize(), False)
|
4333 |
| - isatty_mock.return_value = False |
4334 |
| - self.assertEqual(traceback._can_colorize(), False) |
4335 | 4341 |
|
4336 | 4342 | if __name__ == "__main__":
|
4337 | 4343 | unittest.main()
|
0 commit comments