diff options
Diffstat (limited to 'libs/tqdm/tests/tests_main.py')
-rw-r--r-- | libs/tqdm/tests/tests_main.py | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/libs/tqdm/tests/tests_main.py b/libs/tqdm/tests/tests_main.py deleted file mode 100644 index 75727071e..000000000 --- a/libs/tqdm/tests/tests_main.py +++ /dev/null @@ -1,172 +0,0 @@ -import sys -import subprocess -from os import path -from shutil import rmtree -from tempfile import mkdtemp -from tqdm.cli import main, TqdmKeyError, TqdmTypeError -from tqdm.utils import IS_WIN -from io import open as io_open - -from tests_tqdm import with_setup, pretest, posttest, _range, closing, \ - UnicodeIO, StringIO, SkipTest - - -def _sh(*cmd, **kwargs): - return subprocess.Popen(cmd, stdout=subprocess.PIPE, - **kwargs).communicate()[0].decode('utf-8') - - -class Null(object): - def __call__(self, *_, **__): - return self - - def __getattr__(self, _): - return self - - -IN_DATA_LIST = map(str, _range(int(123))) -NULL = Null() - - -# WARNING: this should be the last test as it messes with sys.stdin, argv -@with_setup(pretest, posttest) -def test_main(): - """Test command line pipes""" - ls_out = _sh('ls').replace('\r\n', '\n') - ls = subprocess.Popen('ls', stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) - res = _sh(sys.executable, '-c', 'from tqdm.cli import main; main()', - stdin=ls.stdout, stderr=subprocess.STDOUT) - ls.wait() - - # actual test: - - assert ls_out in res.replace('\r\n', '\n') - - # semi-fake test which gets coverage: - _SYS = sys.stdin, sys.argv - - with closing(StringIO()) as sys.stdin: - sys.argv = ['', '--desc', 'Test CLI --delim', - '--ascii', 'True', '--delim', r'\0', '--buf_size', '64'] - sys.stdin.write('\0'.join(map(str, _range(int(123))))) - # sys.stdin.write(b'\xff') # TODO - sys.stdin.seek(0) - main() - sys.stdin = IN_DATA_LIST - - sys.argv = ['', '--desc', 'Test CLI pipes', - '--ascii', 'True', '--unit_scale', 'True'] - import tqdm.__main__ # NOQA - - with closing(StringIO()) as sys.stdin: - IN_DATA = '\0'.join(IN_DATA_LIST) - sys.stdin.write(IN_DATA) - sys.stdin.seek(0) - sys.argv = ['', '--ascii', '--bytes=True', '--unit_scale', 'False'] - with closing(UnicodeIO()) as fp: - main(fp=fp) - assert str(len(IN_DATA)) in fp.getvalue() - sys.stdin = IN_DATA_LIST - - # test --log - with closing(StringIO()) as sys.stdin: - sys.stdin.write('\0'.join(map(str, _range(int(123))))) - sys.stdin.seek(0) - # with closing(UnicodeIO()) as fp: - main(argv=['--log', 'DEBUG'], fp=NULL) - # assert "DEBUG:" in sys.stdout.getvalue() - sys.stdin = IN_DATA_LIST - - # clean up - sys.stdin, sys.argv = _SYS - - -def test_manpath(): - """Test CLI --manpath""" - if IS_WIN: - raise SkipTest - tmp = mkdtemp() - man = path.join(tmp, "tqdm.1") - assert not path.exists(man) - try: - main(argv=['--manpath', tmp], fp=NULL) - except SystemExit: - pass - else: - raise SystemExit("Expected system exit") - assert path.exists(man) - rmtree(tmp, True) - - -def test_comppath(): - """Test CLI --comppath""" - if IS_WIN: - raise SkipTest - tmp = mkdtemp() - man = path.join(tmp, "tqdm_completion.sh") - assert not path.exists(man) - try: - main(argv=['--comppath', tmp], fp=NULL) - except SystemExit: - pass - else: - raise SystemExit("Expected system exit") - assert path.exists(man) - - # check most important options appear - with io_open(man, mode='r', encoding='utf-8') as fd: - script = fd.read() - opts = set([ - '--help', '--desc', '--total', '--leave', '--ncols', '--ascii', - '--dynamic_ncols', '--position', '--bytes', '--nrows', '--delim', - '--manpath', '--comppath' - ]) - assert all(args in script for args in opts) - rmtree(tmp, True) - - -def test_exceptions(): - """Test CLI Exceptions""" - _SYS = sys.stdin, sys.argv - sys.stdin = IN_DATA_LIST - - sys.argv = ['', '-ascii', '-unit_scale', '--bad_arg_u_ment', 'foo'] - try: - main(fp=NULL) - except TqdmKeyError as e: - if 'bad_arg_u_ment' not in str(e): - raise - else: - raise TqdmKeyError('bad_arg_u_ment') - - sys.argv = ['', '-ascii', '-unit_scale', 'invalid_bool_value'] - try: - main(fp=NULL) - except TqdmTypeError as e: - if 'invalid_bool_value' not in str(e): - raise - else: - raise TqdmTypeError('invalid_bool_value') - - sys.argv = ['', '-ascii', '--total', 'invalid_int_value'] - try: - main(fp=NULL) - except TqdmTypeError as e: - if 'invalid_int_value' not in str(e): - raise - else: - raise TqdmTypeError('invalid_int_value') - - # test SystemExits - for i in ('-h', '--help', '-v', '--version'): - sys.argv = ['', i] - try: - main(fp=NULL) - except SystemExit: - pass - else: - raise ValueError('expected SystemExit') - - # clean up - sys.stdin, sys.argv = _SYS |