-
-
Notifications
You must be signed in to change notification settings - Fork 202
Expand file tree
/
Copy pathconftest.py
More file actions
153 lines (111 loc) · 4.25 KB
/
Copy pathconftest.py
File metadata and controls
153 lines (111 loc) · 4.25 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# -*- coding: utf-8 -*-
import os
import sys
import pytest
from PIL import Image
from pibooth import language
from pibooth.counters import Counters
from pibooth.printer import Printer
from pibooth.config.parser import PiConfigParser
from pibooth.camera import get_rpi2_camera_proxy, get_gp_camera_proxy, get_cv_camera_proxy
from pibooth.camera import Rpi2Camera, GpCamera, CvCamera, HybridRpi2Camera, HybridCvCamera
ISO = 100
RESOLUTION = (1934, 2464)
MOCKS_DIR = os.path.join(os.path.dirname(__file__), 'mocks')
sys.path.insert(0, MOCKS_DIR)
import printer_drivers # noqa: E402 - import shall be done after adding mocks to paths
CAPTURES_DIR = os.path.join(os.path.dirname(__file__), 'captures')
@pytest.fixture
def init(tmpdir):
return language.init(str(tmpdir.join('translations.cfg')))
@pytest.fixture(scope='session')
def captures_portrait():
return [Image.open(os.path.join(CAPTURES_DIR, 'portrait', img))
for img in os.listdir(os.path.join(CAPTURES_DIR, 'portrait'))
if img.startswith('capture')]
@pytest.fixture(scope='session')
def overlays_portrait_path():
return [os.path.join(CAPTURES_DIR, 'portrait', img)
for img in os.listdir(os.path.join(CAPTURES_DIR, 'portrait'))
if img.startswith('overlay')]
@pytest.fixture(scope='session')
def captures_landscape():
return [Image.open(os.path.join(CAPTURES_DIR, 'landscape', img))
for img in os.listdir(os.path.join(CAPTURES_DIR, 'landscape'))
if img.startswith('capture')]
@pytest.fixture(scope='session')
def overlays_landscape_path():
return [os.path.join(CAPTURES_DIR, 'landscape', img)
for img in os.listdir(os.path.join(CAPTURES_DIR, 'landscape'))
if img.startswith('overlay')]
@pytest.fixture(scope='session')
def fond_path():
return os.path.join(CAPTURES_DIR, 'fond.jpg')
@pytest.fixture(scope='session')
def cfg_path():
return os.path.join(MOCKS_DIR, 'pibooth.cfg')
@pytest.fixture(scope='session')
def cfg(cfg_path):
return PiConfigParser(cfg_path, None)
@pytest.fixture
def counters(tmpdir):
return Counters(str(tmpdir.join('data.json')), nbr_printed=0)
@pytest.fixture
def cups_conn(monkeypatch):
conn = printer_drivers.CupsConnectionMock(
printers={'fake-printer': {'printer-state': printer_drivers.PRINTER_STATE_IDLE,
'printer-state-reasons': [],
'printer-state-message': ''}},
default='fake-printer')
monkeypatch.setattr('pibooth.printer.cups', printer_drivers.CupsModuleMock(conn))
monkeypatch.setattr('pibooth.printer.Subscriber', printer_drivers.CupsSubscriberMock, raising=False)
monkeypatch.setattr('pibooth.printer.event', printer_drivers.CupsEventMock, raising=False)
return conn
@pytest.fixture
def printer(cups_conn):
printer = Printer()
yield printer
printer.quit()
@pytest.fixture(scope='session')
def proxy_rpi2():
return get_rpi2_camera_proxy()
@pytest.fixture(scope='session')
def camera_rpi2(proxy_rpi2):
if proxy_rpi2 is None:
pytest.skip("Picamera2 not available")
cam = Rpi2Camera(proxy_rpi2)
cam.initialize(ISO, RESOLUTION, delete_internal_memory=True)
yield cam
cam.quit()
@pytest.fixture(scope='session')
def camera_rpi2_gp(proxy_rpi2, proxy_gp):
if proxy_rpi2 is None or proxy_gp is None:
pytest.skip("Picamera2 and/or gPhoto2 not available")
cam = HybridRpi2Camera(proxy_rpi2, proxy_gp)
cam.initialize(ISO, RESOLUTION, delete_internal_memory=True)
yield cam
cam.quit()
@pytest.fixture(scope='session')
def proxy_cv():
return get_cv_camera_proxy()
@pytest.fixture(scope='session')
def camera_cv(proxy_cv):
cam = CvCamera(proxy_cv)
cam.initialize(ISO, RESOLUTION, delete_internal_memory=True)
yield cam
cam.quit()
@pytest.fixture(scope='session')
def camera_cv_gp(proxy_cv, proxy_gp):
cam = HybridCvCamera(proxy_cv, proxy_gp)
cam.initialize(ISO, RESOLUTION, delete_internal_memory=True)
yield cam
cam.quit()
@pytest.fixture(scope='session')
def proxy_gp():
return get_gp_camera_proxy()
@pytest.fixture(scope='session')
def camera_gp(proxy_gp):
cam = GpCamera(proxy_gp)
cam.initialize(ISO, RESOLUTION, delete_internal_memory=True)
yield cam
cam.quit()