forked from wolph/python-progressbar
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconftest.py
More file actions
42 lines (33 loc) · 1.14 KB
/
conftest.py
File metadata and controls
42 lines (33 loc) · 1.14 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
import time
import timeit
import pytest
import logging
import freezegun
import progressbar
from datetime import datetime
LOG_LEVELS = {
'0': logging.ERROR,
'1': logging.WARNING,
'2': logging.INFO,
'3': logging.DEBUG,
}
def pytest_configure(config):
logging.basicConfig(
level=LOG_LEVELS.get(config.option.verbose, logging.DEBUG))
@pytest.fixture(autouse=True)
def small_interval(monkeypatch):
# Remove the update limit for tests by default
monkeypatch.setattr(
progressbar.ProgressBar, '_MINIMUM_UPDATE_INTERVAL', 1e-6)
monkeypatch.setattr(timeit, 'default_timer', time.time)
@pytest.fixture(autouse=True)
def sleep_faster(monkeypatch):
# The timezone offset in seconds, add 10 seconds to make sure we don't
# accidently get the wrong hour
offset_seconds = (datetime.now() - datetime.utcnow()).seconds + 10
offset_hours = int(offset_seconds / 3600)
freeze_time = freezegun.freeze_time(tz_offset=offset_hours)
with freeze_time as fake_time:
monkeypatch.setattr('time.sleep', fake_time.tick)
monkeypatch.setattr('timeit.default_timer', time.time)
yield freeze_time