-
-
Notifications
You must be signed in to change notification settings - Fork 101
Expand file tree
/
Copy pathtest_timer.py
More file actions
60 lines (50 loc) · 1.44 KB
/
test_timer.py
File metadata and controls
60 lines (50 loc) · 1.44 KB
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
from datetime import timedelta
import pytest
import progressbar
@pytest.mark.parametrize(
'poll_interval,expected',
[
(1, 1),
(timedelta(seconds=1), 1),
(0.001, 0.001),
(timedelta(microseconds=1000), 0.001),
],
)
@pytest.mark.parametrize(
'parameter',
[
'poll_interval',
'min_poll_interval',
],
)
def test_poll_interval(parameter, poll_interval, expected) -> None:
# Test int, float and timedelta intervals
bar = progressbar.ProgressBar(**{parameter: poll_interval})
assert getattr(bar, parameter) == expected
@pytest.mark.parametrize(
'interval',
[
1,
timedelta(seconds=1),
],
)
def test_intervals(monkeypatch, interval) -> None:
monkeypatch.setattr(
progressbar.ProgressBar,
'_MINIMUM_UPDATE_INTERVAL',
interval,
)
bar = progressbar.ProgressBar(max_value=100)
# Initially there should be no last_update_time
assert bar.last_update_time is None
# After updating there should be a last_update_time
bar.update(1)
assert bar.last_update_time
# We should not need an update if the time is nearly the same as before
last_update_time = bar.last_update_time
bar.update(2)
assert bar.last_update_time == last_update_time
# We should need an update if we're beyond the poll_interval
bar._last_update_time -= 2
bar.update(3)
assert bar.last_update_time != last_update_time