8
8
9
9
import mock
10
10
import os
11
- import pytest
12
11
import sys
12
+ from contextlib import nullcontext
13
+
14
+ import pytest
13
15
14
16
ZEPHYR_BASE = os .getenv ("ZEPHYR_BASE" )
15
17
sys .path .insert (0 , os .path .join (ZEPHYR_BASE , "scripts/pylib/build_helpers" ))
16
18
17
- import domains
18
-
19
- from contextlib import nullcontext
20
-
19
+ import domains # noqa: E402
21
20
22
21
TESTDATA_1 = [
23
22
('' , False , 1 , ['domains.yaml file not found: domains.yaml' ]),
24
23
(
25
- """
24
+ """
26
25
default: None
27
26
build_dir: some/dir
28
27
domains: []
29
28
""" ,
30
- True , None , []
29
+ True ,
30
+ None ,
31
+ [],
31
32
),
32
33
]
33
34
35
+
34
36
@pytest .mark .parametrize (
35
37
'f_contents, f_exists, exit_code, expected_logs' ,
36
38
TESTDATA_1 ,
37
- ids = ['no file' , 'valid' ]
39
+ ids = ['no file' , 'valid' ],
38
40
)
39
41
def test_from_file (caplog , f_contents , f_exists , exit_code , expected_logs ):
40
42
def mock_open (* args , ** kwargs ):
41
43
if f_exists :
42
44
return mock .mock_open (read_data = f_contents )(args , kwargs )
43
- raise FileNotFoundError (f 'domains.yaml not found.' )
45
+ raise FileNotFoundError ('domains.yaml not found.' )
44
46
45
47
init_mock = mock .Mock (return_value = None )
46
48
47
- with mock .patch ('domains.Domains.__init__' , init_mock ), \
48
- mock .patch ('builtins.open' , mock_open ), \
49
- pytest .raises (SystemExit ) if exit_code else nullcontext () as s_exit :
49
+ with (
50
+ mock .patch ('domains.Domains.__init__' , init_mock ),
51
+ mock .patch ('builtins.open' , mock_open ),
52
+ pytest .raises (SystemExit ) if exit_code else nullcontext () as s_exit ,
53
+ ):
50
54
result = domains .Domains .from_file ('domains.yaml' )
51
55
52
56
if exit_code :
@@ -60,7 +64,7 @@ def mock_open(*args, **kwargs):
60
64
61
65
TESTDATA_2 = [
62
66
(
63
- """
67
+ """
64
68
default: some default
65
69
build_dir: my/dir
66
70
domains:
@@ -70,10 +74,14 @@ def mock_open(*args, **kwargs):
70
74
build_dir: dir/3
71
75
flash_order: I don\' t think this is correct
72
76
""" ,
73
- 1 , None , None , None , None
77
+ 1 ,
78
+ None ,
79
+ None ,
80
+ None ,
81
+ None ,
74
82
),
75
83
(
76
- """
84
+ """
77
85
build_dir: build/dir
78
86
domains:
79
87
- name: a domain
@@ -89,16 +97,15 @@ def mock_open(*args, **kwargs):
89
97
'build/dir' ,
90
98
[('default_domain' , 'dir/2' ), ('a domain' , 'dir/1' )],
91
99
('default_domain' , 'dir/2' ),
92
- {'a domain' : ('a domain' , 'dir/1' ),
93
- 'default_domain' : ('default_domain' , 'dir/2' )}
100
+ {'a domain' : ('a domain' , 'dir/1' ), 'default_domain' : ('default_domain' , 'dir/2' )},
94
101
),
95
102
]
96
103
104
+
97
105
@pytest .mark .parametrize (
98
- 'data, exit_code, expected_build_dir, expected_flash_order,' \
99
- ' expected_default, expected_domains' ,
106
+ 'data, exit_code, expected_build_dir, expected_flash_order, expected_default, expected_domains' ,
100
107
TESTDATA_2 ,
101
- ids = ['invalid' , 'valid' ]
108
+ ids = ['invalid' , 'valid' ],
102
109
)
103
110
def test_from_yaml (
104
111
caplog ,
@@ -107,13 +114,15 @@ def test_from_yaml(
107
114
expected_build_dir ,
108
115
expected_flash_order ,
109
116
expected_default ,
110
- expected_domains
117
+ expected_domains ,
111
118
):
112
119
def mock_domain (name , build_dir , * args , ** kwargs ):
113
120
return name , build_dir
114
121
115
- with mock .patch ('domains.Domain' , side_effect = mock_domain ), \
116
- pytest .raises (SystemExit ) if exit_code else nullcontext () as exit_st :
122
+ with (
123
+ mock .patch ('domains.Domain' , side_effect = mock_domain ),
124
+ pytest .raises (SystemExit ) if exit_code else nullcontext () as exit_st ,
125
+ ):
117
126
doms = domains .Domains .from_yaml (data )
118
127
119
128
if exit_code :
@@ -133,35 +142,40 @@ def mock_domain(name, build_dir, *args, **kwargs):
133
142
(
134
143
None ,
135
144
True ,
136
- [('some' , os .path .join ('dir' , '2' )),
137
- ('order' , os .path .join ('dir' , '1' ))]
145
+ [
146
+ ('some' , os .path .join ('dir' , '2' )),
147
+ ('order' , os .path .join ('dir' , '1' )),
148
+ ],
138
149
),
139
150
(
140
151
None ,
141
152
False ,
142
- [('order' , os .path .join ('dir' , '1' )),
143
- ('some' , os .path .join ('dir' , '2' ))]
153
+ [
154
+ ('order' , os .path .join ('dir' , '1' )),
155
+ ('some' , os .path .join ('dir' , '2' )),
156
+ ],
144
157
),
145
158
(
146
159
['some' ],
147
160
False ,
148
- [('some' , os .path .join ('dir' , '2' ))]
161
+ [('some' , os .path .join ('dir' , '2' ))],
149
162
),
150
163
]
151
164
165
+
152
166
@pytest .mark .parametrize (
153
167
'names, default_flash_order, expected_result' ,
154
168
TESTDATA_3 ,
155
- ids = ['order only' , 'no parameters' , 'valid' ]
169
+ ids = ['order only' , 'no parameters' , 'valid' ],
156
170
)
157
171
def test_get_domains (
158
172
caplog ,
159
173
names ,
160
174
default_flash_order ,
161
- expected_result
175
+ expected_result ,
162
176
):
163
177
doms = domains .Domains (
164
- """
178
+ """
165
179
domains:
166
180
- name: dummy
167
181
build_dir: dummy
@@ -171,48 +185,48 @@ def test_get_domains(
171
185
)
172
186
doms ._flash_order = [
173
187
('some' , os .path .join ('dir' , '2' )),
174
- ('order' , os .path .join ('dir' , '1' ))
188
+ ('order' , os .path .join ('dir' , '1' )),
175
189
]
176
190
doms ._domains = {
177
191
'order' : ('order' , os .path .join ('dir' , '1' )),
178
- 'some' : ('some' , os .path .join ('dir' , '2' ))
192
+ 'some' : ('some' , os .path .join ('dir' , '2' )),
179
193
}
180
194
181
195
result = doms .get_domains (names , default_flash_order )
182
196
183
197
assert result == expected_result
184
198
185
199
186
-
187
200
TESTDATA_3 = [
188
201
(
189
202
'other' ,
190
203
1 ,
191
204
['domain "other" not found, valid domains are: order, some' ],
192
- None
205
+ None ,
193
206
),
194
207
(
195
208
'some' ,
196
209
None ,
197
210
[],
198
- ('some' , os .path .join ('dir' , '2' ))
211
+ ('some' , os .path .join ('dir' , '2' )),
199
212
),
200
213
]
201
214
215
+
202
216
@pytest .mark .parametrize (
203
217
'name, exit_code, expected_logs, expected_result' ,
204
218
TESTDATA_3 ,
205
- ids = ['domain not found' , 'valid' ]
219
+ ids = ['domain not found' , 'valid' ],
206
220
)
207
221
def test_get_domain (
208
222
caplog ,
209
223
name ,
210
224
exit_code ,
211
225
expected_logs ,
212
- expected_result
226
+ expected_result ,
213
227
):
214
228
doms = domains .Domains (
215
- """
229
+ """
216
230
domains:
217
231
- name: dummy
218
232
build_dir: dummy
@@ -222,11 +236,11 @@ def test_get_domain(
222
236
)
223
237
doms ._flash_order = [
224
238
('some' , os .path .join ('dir' , '2' )),
225
- ('order' , os .path .join ('dir' , '1' ))
239
+ ('order' , os .path .join ('dir' , '1' )),
226
240
]
227
241
doms ._domains = {
228
242
'order' : ('order' , os .path .join ('dir' , '1' )),
229
- 'some' : ('some' , os .path .join ('dir' , '2' ))
243
+ 'some' : ('some' , os .path .join ('dir' , '2' )),
230
244
}
231
245
232
246
with pytest .raises (SystemExit ) if exit_code else nullcontext () as s_exit :
0 commit comments