implemented freezegun and added tests for fix #160 · commit-0/python-progressbar@b0a4f32 · GitHub
Skip to content

Commit b0a4f32

Browse files
committed
implemented freezegun and added tests for fix wolph#160
1 parent 37facc7 commit b0a4f32

8 files changed

Lines changed: 143 additions & 98 deletions

File tree

progressbar/widgets.py

Lines changed: 5 additions & 5 deletions

setup.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
'pytest-cov>=2.5.1',
7676
'pytest-flakes>=2.0.0',
7777
'pytest-pep8>=1.0.6',
78-
'pytest-xdist>=1.22.2',
7978
'sphinx>=1.7.1',
8079
],
8180
},

tests/conftest.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import time
22
import pytest
3-
import progressbar
43
import logging
4+
import freezegun
5+
import progressbar
56

67

78
LOG_LEVELS = {
@@ -21,11 +22,12 @@ def pytest_configure(config):
2122
def small_interval(monkeypatch):
2223
# Remove the update limit for tests by default
2324
monkeypatch.setattr(
24-
progressbar.ProgressBar, '_MINIMUM_UPDATE_INTERVAL', 0.000001)
25+
progressbar.ProgressBar, '_MINIMUM_UPDATE_INTERVAL', 1e-6)
2526

2627

2728
@pytest.fixture(autouse=True)
2829
def sleep_faster(monkeypatch):
29-
sleep = time.sleep
30-
monkeypatch.setattr('time.sleep', lambda t: sleep(t / 1e6))
31-
30+
with freezegun.freeze_time() as fake_time:
31+
monkeypatch.setattr('time.sleep', fake_time.tick)
32+
monkeypatch.setattr('timeit.default_timer', time.time)
33+
yield

tests/test_custom_widgets.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import time
12
import progressbar
23

34

@@ -28,16 +29,22 @@ def test_crazy_file_transfer_speed_widget():
2829
p.start()
2930
for i in range(0, 200, 5):
3031
# do something
32+
time.sleep(0.1)
3133
p.update(i + 1)
3234
p.finish()
3335

3436

3537
def test_dynamic_message_widget():
36-
widgets = [' [', progressbar.Timer(), '] ', progressbar.Bar(), ' (',
37-
progressbar.ETA(), ') ', progressbar.DynamicMessage('loss')]
38+
widgets = [
39+
' [', progressbar.Timer(), '] ',
40+
progressbar.Bar(),
41+
' (', progressbar.ETA(), ') ',
42+
progressbar.DynamicMessage('loss'),
43+
]
3844

3945
p = progressbar.ProgressBar(widgets=widgets, max_value=1000)
4046
p.start()
4147
for i in range(0, 200, 5):
48+
time.sleep(0.1)
4249
p.update(i + 1, loss=.5)
4350
p.finish()

tests/test_failure.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import time
12
import pytest
23
import progressbar
34

@@ -20,13 +21,15 @@ def test_no_max_value():
2021
p = progressbar.ProgressBar()
2122
p.start()
2223
for i in range(5):
24+
time.sleep(1)
2325
p.update(i)
2426

2527

2628
def test_correct_max_value():
2729
'''Looping up to 5 when max_value is 10? No problem'''
2830
p = progressbar.ProgressBar(max_value=10)
2931
for i in range(5):
32+
time.sleep(1)
3033
p.update(i)
3134

3235

@@ -62,7 +65,7 @@ def test_changing_max_value():
6265
'''Changing max_value? No problem'''
6366
p = progressbar.ProgressBar(max_value=10)(range(20), max_value=20)
6467
for i in p:
65-
pass
68+
time.sleep(1)
6669

6770

6871
def test_backwards():
@@ -77,10 +80,12 @@ def test_incorrect_max_value():
7780
'''Looping up to 10 when max_value is 5? This is madness!'''
7881
p = progressbar.ProgressBar(max_value=5)
7982
for i in range(5):
83+
time.sleep(1)
8084
p.update(i)
8185

8286
with pytest.raises(ValueError):
8387
for i in range(5, 10):
88+
time.sleep(1)
8489
p.update(i)
8590

8691

@@ -98,6 +103,7 @@ def test_unexpected_update_keyword_arg():
98103
p = progressbar.ProgressBar(max_value=10)
99104
with pytest.raises(TypeError):
100105
for i in range(10):
106+
time.sleep(1)
101107
p.update(i, foo=10)
102108

103109

tests/test_monitor_progress.py

Lines changed: 76 additions & 81 deletions

0 commit comments

Comments
 (0)