@@ -33,6 +33,8 @@ def cpu_sleep(t):
3333
3434def checkCpuTime (sleeptime = 0.2 ):
3535 '''Check if cpu time works correctly'''
36+ if checkCpuTime .passed :
37+ return True
3638 # First test that sleeping does not consume cputime
3739 start1 = process_time ()
3840 sleep (sleeptime )
@@ -43,7 +45,10 @@ def checkCpuTime(sleeptime=0.2):
4345 cpu_sleep (sleeptime )
4446 t2 = process_time () - start2
4547
46- return (abs (t1 ) < 0.0001 and (t1 < t2 / 10 ))
48+ if (abs (t1 ) < 0.0001 and (t1 < t2 / 10 )):
49+ return True
50+ raise SkipTest
51+ checkCpuTime .passed = False
4752
4853
4954@contextmanager
@@ -60,6 +65,23 @@ def elapser(): # NOQA
6065 return spent
6166
6267
68+ def retry_on_except (n = 3 ):
69+ def wrapper (fn ):
70+ def test_inner ():
71+ for i in range (1 , n + 1 ):
72+ try :
73+ checkCpuTime ()
74+ fn ()
75+ except :
76+ if i >= n :
77+ raise
78+ else :
79+ return
80+ test_inner .__doc__ = fn .__doc__
81+ return test_inner
82+ return wrapper
83+
84+
6385class MockIO (StringIO ):
6486 """ Wraps StringIO to mock a file with no I/O """
6587 def write (self , data ):
@@ -132,12 +154,9 @@ def update_and_yield():
132154
133155
134156@with_setup (pretest , posttest )
157+ @retry_on_except ()
135158def test_iter_overhead ():
136159 """ Test overhead of iteration based tqdm """
137- try :
138- assert checkCpuTime ()
139- except :
140- raise SkipTest
141160
142161 total = int (1e6 )
143162
@@ -161,12 +180,9 @@ def test_iter_overhead():
161180
162181
163182@with_setup (pretest , posttest )
183+ @retry_on_except ()
164184def test_manual_overhead ():
165185 """ Test overhead of manual tqdm """
166- try :
167- assert checkCpuTime ()
168- except :
169- raise SkipTest
170186
171187 total = int (1e6 )
172188
@@ -191,12 +207,9 @@ def test_manual_overhead():
191207
192208
193209@with_setup (pretest , posttest )
210+ @retry_on_except ()
194211def test_iter_overhead_hard ():
195212 """ Test overhead of iteration based tqdm (hard) """
196- try :
197- assert checkCpuTime ()
198- except :
199- raise SkipTest
200213
201214 total = int (1e5 )
202215
@@ -223,12 +236,9 @@ def test_iter_overhead_hard():
223236
224237
225238@with_setup (pretest , posttest )
239+ @retry_on_except ()
226240def test_manual_overhead_hard ():
227241 """ Test overhead of manual tqdm (hard) """
228- try :
229- assert checkCpuTime ()
230- except :
231- raise SkipTest
232242
233243 total = int (1e5 )
234244
@@ -256,12 +266,9 @@ def test_manual_overhead_hard():
256266
257267
258268@with_setup (pretest , posttest )
269+ @retry_on_except ()
259270def test_iter_overhead_simplebar_hard ():
260271 """ Test overhead of iteration based tqdm vs simple progress bar (hard) """
261- try :
262- assert checkCpuTime ()
263- except :
264- raise SkipTest
265272
266273 total = int (1e4 )
267274
@@ -290,12 +297,9 @@ def test_iter_overhead_simplebar_hard():
290297
291298
292299@with_setup (pretest , posttest )
300+ @retry_on_except ()
293301def test_manual_overhead_simplebar_hard ():
294302 """ Test overhead of manual tqdm vs simple progress bar (hard) """
295- try :
296- assert checkCpuTime ()
297- except :
298- raise SkipTest
299303
300304 total = int (1e4 )
301305
0 commit comments