use _range in tests, minor output fix, detailed errors in tox

This commit is contained in:
Casper da Costa-Luis 2015-11-11 19:37:50 +00:00
parent c663ee6171
commit 55e37f0e8a
2 changed files with 36 additions and 32 deletions

View File

@ -13,7 +13,7 @@ deps =
coverage<4
coveralls
commands =
nosetests --with-coverage --cover-package=tqdm -v tqdm/
nosetests --with-coverage --cover-package=tqdm -d -v tqdm/
coveralls
[testenv:flake8]

View File

@ -4,11 +4,15 @@ import csv
import re
from time import sleep
try:
_range = xrange
except NameError:
_range = range
try:
from StringIO import StringIO
except:
from io import StringIO
from io import StringIO as uIO # supports unicode strings
from tqdm import format_interval
@ -36,12 +40,12 @@ def test_format_meter():
assert format_meter(0, 1000, 13, ncols=68, prefix='desc: ') == \
"desc: 0%| | 0/1000 [00:13<?, 0.00it/s]"
assert format_meter(231, 1000, 392) == \
" 23%|" + unich(0x2588)*2 + unich(0x258e) + \
" 23%|" + unich(0x2588) * 2 + unich(0x258e) + \
" | 231/1000 [06:32<21:44, 0.59it/s]"
assert format_meter(10000, 1000, 13) == \
"10000it [00:13, 769.23it/s]"
assert format_meter(231, 1000, 392, ncols=56, ascii=True) == \
" 23%|" + '#'*3 + '6' + \
" 23%|" + '#' * 3 + '6' + \
" | 231/1000 [06:32<21:44, 0.59it/s]"
assert format_meter(100000, 1000, 13, unit_scale=True, unit='iB') == \
"100KiB [00:13, 7.69KiB/s]"
@ -90,7 +94,7 @@ def test_iterate_over_csv_rows():
# Create a test csv pseudo file
test_csv_file = StringIO()
writer = csv.writer(test_csv_file)
for i in range(3):
for i in _range(3):
writer.writerow(['test'] * 3)
test_csv_file.seek(0)
@ -105,7 +109,7 @@ def test_iterate_over_csv_rows():
def test_file_output():
""" Test output to arbitrary file-like objects """
our_file = StringIO()
for i in tqdm(range(3), file=our_file):
for i in tqdm(_range(3), file=our_file):
if i == 1:
our_file.seek(0)
assert '0/3' in our_file.read()
@ -114,7 +118,7 @@ def test_file_output():
def test_leave_option():
""" Test `leave=True` always prints info about the last iteration. """
our_file = StringIO()
for i in tqdm(range(3), file=our_file, leave=True):
for i in tqdm(_range(3), file=our_file, leave=True):
pass
our_file.seek(0)
assert '| 3/3 ' in our_file.read()
@ -123,7 +127,7 @@ def test_leave_option():
our_file.close()
our_file2 = StringIO()
for i in tqdm(range(3), file=our_file2, leave=False):
for i in tqdm(_range(3), file=our_file2, leave=False):
pass
our_file2.seek(0)
assert '| 3/3 ' not in our_file2.read()
@ -150,7 +154,7 @@ def test_trange():
def test_min_interval():
""" Test mininterval """
our_file = StringIO()
for i in tqdm(range(3), file=our_file, mininterval=1e-10):
for i in tqdm(_range(3), file=our_file, mininterval=1e-10):
pass
our_file.seek(0)
assert " 0%| | 0/3 [00:00<" in our_file.read()
@ -160,14 +164,14 @@ def test_min_interval():
def test_min_iters():
""" Test miniters """
our_file = StringIO()
for i in tqdm(range(3), file=our_file, leave=True, miniters=4):
for i in tqdm(_range(3), file=our_file, leave=True, miniters=4):
our_file.write('blank\n')
our_file.seek(0)
assert '\nblank\nblank\n' in our_file.read()
our_file.close()
our_file2 = StringIO()
for i in tqdm(range(3), file=our_file2, leave=True, miniters=1):
for i in tqdm(_range(3), file=our_file2, leave=True, miniters=1):
our_file2.write('blank\n')
our_file2.seek(0)
# assume automatic mininterval = 0 means intermediate output
@ -200,13 +204,13 @@ def test_dynamic_min_iters():
assert '70%' in out
our_file = StringIO()
t = tqdm(range(10), file=our_file, miniters=None, mininterval=None)
t = tqdm(_range(10), file=our_file, miniters=None, mininterval=None)
for i in t:
pass
assert t.dynamic_miniters
our_file = StringIO()
t = tqdm(range(10), file=our_file, miniters=1, mininterval=None)
t = tqdm(_range(10), file=our_file, miniters=1, mininterval=None)
for i in t:
pass
assert not t.dynamic_miniters
@ -217,13 +221,13 @@ def test_dynamic_min_iters():
def test_big_min_interval():
""" Test large mininterval """
our_file = StringIO()
for i in tqdm(range(2), file=our_file, mininterval=1E10):
for i in tqdm(_range(2), file=our_file, mininterval=1E10):
pass
our_file.seek(0)
assert '50%' not in our_file.read()
our_file = StringIO()
t = tqdm(range(2), file=our_file, mininterval=1E10)
t = tqdm(_range(2), file=our_file, mininterval=1E10)
t.update()
t.update()
our_file.seek(0)
@ -235,7 +239,7 @@ def test_big_min_interval():
def test_disable():
""" Test disable """
our_file = StringIO()
for i in tqdm(range(3), file=our_file, disable=True):
for i in tqdm(_range(3), file=our_file, disable=True):
pass
our_file.seek(0)
assert our_file.read() == ''
@ -251,7 +255,7 @@ def test_disable():
def test_unit():
""" Test SI unit prefix """
our_file = StringIO()
for i in tqdm(range(3), file=our_file, miniters=1, unit="bytes"):
for i in tqdm(_range(3), file=our_file, miniters=1, unit="bytes"):
pass
our_file.seek(0)
assert 'bytes/s' in our_file.read()
@ -268,7 +272,7 @@ def test_ascii():
# Test ascii bar
our_file = StringIO()
for i in tqdm(range(3), total=15, file=our_file, miniters=1, mininterval=0,
for i in tqdm(_range(3), total=15, file=our_file, miniters=1, mininterval=0,
ascii=True):
pass
our_file.seek(0)
@ -281,7 +285,7 @@ def test_ascii():
# Test unicode bar
our_file = uIO()
t = tqdm(total=15, file=our_file, ascii=False, mininterval=0)
for i in range(3):
for i in _range(3):
t.update()
our_file.seek(0)
res = our_file.read().strip("\r").split("\r")
@ -347,10 +351,9 @@ def test_close():
def test_smoothing():
""" Test exponential weighted average smoothing """
# -- Test disabling smoothing
our_file = StringIO()
for i in tqdm(range(3), file=our_file, smoothing=None, leave=True):
for i in tqdm(_range(3), file=our_file, smoothing=None, leave=True):
pass
our_file.seek(0)
assert '| 3/3 ' in our_file.read()
@ -362,9 +365,9 @@ def test_smoothing():
# 1st case: no smoothing (only use average)
our_file = StringIO()
our_file2 = StringIO()
t = tqdm(range(3), file=our_file2, smoothing=None, leave=True, miniters=1,
t = tqdm(_range(3), file=our_file2, smoothing=None, leave=True, miniters=1,
mininterval=0)
for i in tqdm(range(3), file=our_file, smoothing=None, leave=True,
for i in tqdm(_range(3), file=our_file, smoothing=None, leave=True,
miniters=1, mininterval=0):
# Sleep more for first iteration and see how quickly rate is updated
if i == 0:
@ -390,9 +393,9 @@ def test_smoothing():
# 2nd case: use max smoothing (= instant rate)
our_file = StringIO()
our_file2 = StringIO()
t = tqdm(range(3), file=our_file2, smoothing=1, leave=True, miniters=1,
t = tqdm(_range(3), file=our_file2, smoothing=1, leave=True, miniters=1,
mininterval=0)
for i in tqdm(range(3), file=our_file, smoothing=1, leave=True,
for i in tqdm(_range(3), file=our_file, smoothing=1, leave=True,
miniters=1, mininterval=0):
if i == 0:
sleep(0.01)
@ -415,9 +418,9 @@ def test_smoothing():
# 3rd case: use medium smoothing
our_file = StringIO()
our_file2 = StringIO()
t = tqdm(range(3), file=our_file2, smoothing=0.5, leave=True, miniters=1,
t = tqdm(_range(3), file=our_file2, smoothing=0.5, leave=True, miniters=1,
mininterval=0)
for i in tqdm(range(3), file=our_file, smoothing=0.5, leave=True,
for i in tqdm(_range(3), file=our_file, smoothing=0.5, leave=True,
miniters=1, mininterval=0):
if i == 0:
sleep(0.01)
@ -443,10 +446,11 @@ def test_smoothing():
def test_no_gui():
""" Test no gui properties (internal variable """
# Check: no StatusPrinter when gui is enabled
t = tqdm(total=1, gui=True)
""" Test internal GUI properties """
# Check: StatusPrinter iff gui is disabled
our_file = StringIO()
t = tqdm(total=1, gui=True, file=our_file)
assert not hasattr(t, "sp")
# Check: StatusPrinter loaded when no gui
t = tqdm(total=1, gui=False)
t = tqdm(total=1, gui=False, file=our_file)
assert hasattr(t, "sp")
our_file.close()