from datetime import timedelta import progressbar def test_poll_interval(): # Test int, float and timedelta intervals bar = progressbar.ProgressBar(poll_interval=1) assert bar.poll_interval.seconds == 1 assert bar.poll_interval.microseconds == 0 bar = progressbar.ProgressBar(poll_interval=.001) assert bar.poll_interval.seconds == 0 assert bar.poll_interval.microseconds < 1001 bar = progressbar.ProgressBar(poll_interval=timedelta(seconds=1)) assert bar.poll_interval.seconds == 1 assert bar.poll_interval.microseconds == 0 bar = progressbar.ProgressBar(poll_interval=timedelta(microseconds=1000)) assert bar.poll_interval.seconds == 0 assert bar.poll_interval.microseconds < 1001 def test_intervals(): bar = progressbar.ProgressBar(max_value=100) bar._MINIMUM_UPDATE_INTERVAL = 1 # 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