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
49 lines (38 loc) · 1.24 KB
/
conftest.py
File metadata and controls
49 lines (38 loc) · 1.24 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
from __future__ import annotations
import logging
import time
import timeit
from datetime import datetime
import freezegun
import pytest
import progressbar
LOG_LEVELS: dict[str, int] = {
'0': logging.ERROR,
'1': logging.WARNING,
'2': logging.INFO,
'3': logging.DEBUG,
}
def pytest_configure(config) -> None:
logging.basicConfig(
level=LOG_LEVELS.get(config.option.verbose, logging.DEBUG),
)
@pytest.fixture(autouse=True)
def small_interval(monkeypatch) -> None:
# 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
# accidentally 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