-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_basic.py
100 lines (74 loc) · 2.15 KB
/
test_basic.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""Test some basic routines of jabbar."""
import sys
import tempfile
from jabbar import jabbar
import pytest
def test_iter():
"""Test whether iter mode works."""
for _ in jabbar(range(100)):
pass
def test_manual():
"""Test whether manual setup mode works."""
total = 50
bar = jabbar(total=total)
for _ in range(total):
bar.inc()
bar.finish()
assert bar.n_done == total
def test_context():
"""Test whether context mode works."""
total = 100
with jabbar(total=total - 20) as bar:
for _ in range(total):
bar.inc()
assert bar.n_done == total
def test_no_iterable():
"""Test failure when using iterable mode without iterable."""
with pytest.raises(ValueError):
for _ in jabbar(total=10):
pass
def test_no_total():
"""Test failure when no total is available."""
with pytest.raises(ValueError):
jabbar()
def test_stderr():
"""Test output to stderr."""
for _ in jabbar(range(100), file=sys.stderr):
pass
def test_file():
"""Test output to file."""
with tempfile.NamedTemporaryFile(mode="w+") as file:
for _ in jabbar(range(100), file=file):
pass
def test_enable():
"""Test enabling functionality."""
for _ in jabbar(range(100), enable=False):
pass
def test_keep():
"""Test the keep functionality."""
for _ in jabbar(range(100), keep=False):
pass
def test_custom_symbols():
"""Test passing custom bar symbols."""
for _ in jabbar(range(100), symbols="yo"):
pass
def test_output():
"""Test the actual output."""
total = 50
bar = jabbar(total=total)
for _ in range(20):
bar.inc()
out = bar.get_line()
assert out == "\r 40% |█████████▋ | 20/50 "
assert bar.n_done == 20
bar.finish()
def test_output_custom_symbols():
"""Test the output with custom symbols."""
total = 50
bar = jabbar(total=total, symbols="xo")
for _ in range(17):
bar.inc()
out = bar.get_line()
assert out == "\r 34% |xoxoxoxo | 17/50 "
assert bar.n_done == 17
bar.finish()