-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathconftest.py
52 lines (35 loc) · 1.4 KB
/
conftest.py
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
50
51
52
from unittest.mock import MagicMock
import pytest
from CherryTomato.settings import CherryTomatoSettings
from CherryTomato.tomato_timer import TomatoTimer
class MockQSettings:
def value(self, key, default, type=None):
return default
setValue = MagicMock()
remove = MagicMock()
@pytest.fixture
def mock_qsettings(monkeypatch, mocker):
monkeypatch.setattr(CherryTomatoSettings, 'TOMATO_DEFAULT', 100)
monkeypatch.setattr(CherryTomatoSettings, 'BREAK_DEFAULT', 25)
monkeypatch.setattr(CherryTomatoSettings, 'LONG_BREAK_DEFAULT', 50)
monkeypatch.setattr(CherryTomatoSettings, 'REPEAT_DEFAULT', 4)
monkeypatch.setattr(CherryTomatoSettings, 'AUTO_STOP_TOMATO_DEFAULT', False)
monkeypatch.setattr(CherryTomatoSettings, 'AUTO_STOP_BREAK_DEFAULT', False)
monkeypatch.setattr(CherryTomatoSettings, 'SWITCH_TO_TOMATO_ON_ABORT_DEFAULT', True)
return mocker.patch('CherryTomato.settings.QSettings', MockQSettings)
@pytest.fixture
def settings(mock_qsettings):
return CherryTomatoSettings()
@pytest.fixture
def tomato(settings, monkeypatch, mocker):
monkeypatch.setattr(TomatoTimer, 'TICK_TIME', 64)
tomato = TomatoTimer()
tomato.settings = settings
return tomato
@pytest.fixture
def tomato_on_break(tomato):
tomato.changeState()
return tomato
@pytest.fixture
def mock_stop(mocker):
return mocker.patch('CherryTomato.tomato_timer.TomatoTimer.stop')