|
| 1 | + |
| 2 | +import mock |
| 3 | +import pytest |
| 4 | +import sys |
| 5 | + |
| 6 | +from pre_commit.color import format_color |
| 7 | +from pre_commit.color import GREEN |
| 8 | +from pre_commit.color import use_color |
| 9 | + |
| 10 | + |
| 11 | +@pytest.mark.parametrize(('in_text', 'in_color', 'in_use_color', 'expected'), ( |
| 12 | + ('foo', GREEN, True, '{0}foo\033[0m'.format(GREEN)), |
| 13 | + ('foo', GREEN, False, 'foo'), |
| 14 | +)) |
| 15 | +def test_format_color(in_text, in_color, in_use_color, expected): |
| 16 | + ret = format_color(in_text, in_color, in_use_color) |
| 17 | + assert ret == expected |
| 18 | + |
| 19 | + |
| 20 | +def test_use_color_never(): |
| 21 | + assert use_color('never') is False |
| 22 | + |
| 23 | + |
| 24 | +def test_use_color_always(): |
| 25 | + assert use_color('always') is True |
| 26 | + |
| 27 | + |
| 28 | +def test_use_color_no_tty(): |
| 29 | + with mock.patch.object(sys.stdout, 'isatty', return_value=False): |
| 30 | + assert use_color('auto') is False |
| 31 | + |
| 32 | + |
| 33 | +def test_use_color_tty(): |
| 34 | + with mock.patch.object(sys.stdout, 'isatty', return_value=True): |
| 35 | + assert use_color('auto') is True |
0 commit comments