1import io 2import pytest 3import progressbar 4 5 6@pytest.mark.parametrize('value,expected', [ 7 (None, None), 8 ('', None), 9 ('1', True), 10 ('y', True), 11 ('t', True), 12 ('yes', True), 13 ('true', True), 14 ('0', False), 15 ('n', False), 16 ('f', False), 17 ('no', False), 18 ('false', False), 19]) 20def test_env_flag(value, expected, monkeypatch): 21 if value is not None: 22 monkeypatch.setenv('TEST_ENV', value) 23 assert progressbar.utils.env_flag('TEST_ENV') == expected 24 25 if value: 26 monkeypatch.setenv('TEST_ENV', value.upper()) 27 assert progressbar.utils.env_flag('TEST_ENV') == expected 28 29 monkeypatch.undo() 30 31 32def test_is_terminal(monkeypatch): 33 fd = io.StringIO() 34 35 monkeypatch.delenv('PROGRESSBAR_IS_TERMINAL', raising=False) 36 monkeypatch.delenv('JPY_PARENT_PID', raising=False) 37 38 assert progressbar.utils.is_terminal(fd) is False 39 assert progressbar.utils.is_terminal(fd, True) is True 40 assert progressbar.utils.is_terminal(fd, False) is False 41 42 monkeypatch.setenv('JPY_PARENT_PID', '123') 43 assert progressbar.utils.is_terminal(fd) is True 44 monkeypatch.delenv('JPY_PARENT_PID') 45 46 # Sanity check 47 assert progressbar.utils.is_terminal(fd) is False 48 49 monkeypatch.setenv('PROGRESSBAR_IS_TERMINAL', 'true') 50 assert progressbar.utils.is_terminal(fd) is True 51 monkeypatch.setenv('PROGRESSBAR_IS_TERMINAL', 'false') 52 assert progressbar.utils.is_terminal(fd) is False 53 monkeypatch.delenv('PROGRESSBAR_IS_TERMINAL') 54 55 # Sanity check 56 assert progressbar.utils.is_terminal(fd) is False 57