88
99import mock
1010import os
11- import pytest
1211import sys
12+ from contextlib import nullcontext
13+
14+ import pytest
1315
1416ZEPHYR_BASE = os .getenv ("ZEPHYR_BASE" )
1517sys .path .insert (0 , os .path .join (ZEPHYR_BASE , "scripts/pylib/build_helpers" ))
1618
17- import domains
18-
19- from contextlib import nullcontext
20-
19+ import domains # noqa: E402
2120
2221TESTDATA_1 = [
2322 ('' , False , 1 , ['domains.yaml file not found: domains.yaml' ]),
2423 (
25- """
24+ """
2625default: None
2726build_dir: some/dir
2827domains: []
2928""" ,
30- True , None , []
29+ True ,
30+ None ,
31+ [],
3132 ),
3233]
3334
35+
3436@pytest .mark .parametrize (
3537 'f_contents, f_exists, exit_code, expected_logs' ,
3638 TESTDATA_1 ,
37- ids = ['no file' , 'valid' ]
39+ ids = ['no file' , 'valid' ],
3840)
3941def test_from_file (caplog , f_contents , f_exists , exit_code , expected_logs ):
4042 def mock_open (* args , ** kwargs ):
4143 if f_exists :
4244 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.' )
4446
4547 init_mock = mock .Mock (return_value = None )
4648
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+ ):
5054 result = domains .Domains .from_file ('domains.yaml' )
5155
5256 if exit_code :
@@ -60,7 +64,7 @@ def mock_open(*args, **kwargs):
6064
6165TESTDATA_2 = [
6266 (
63- """
67+ """
6468default: some default
6569build_dir: my/dir
6670domains:
@@ -70,10 +74,14 @@ def mock_open(*args, **kwargs):
7074 build_dir: dir/3
7175flash_order: I don\' t think this is correct
7276""" ,
73- 1 , None , None , None , None
77+ 1 ,
78+ None ,
79+ None ,
80+ None ,
81+ None ,
7482 ),
7583 (
76- """
84+ """
7785build_dir: build/dir
7886domains:
7987- name: a domain
@@ -89,16 +97,15 @@ def mock_open(*args, **kwargs):
8997 'build/dir' ,
9098 [('default_domain' , 'dir/2' ), ('a domain' , 'dir/1' )],
9199 ('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' )},
94101 ),
95102]
96103
104+
97105@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' ,
100107 TESTDATA_2 ,
101- ids = ['invalid' , 'valid' ]
108+ ids = ['invalid' , 'valid' ],
102109)
103110def test_from_yaml (
104111 caplog ,
@@ -107,13 +114,15 @@ def test_from_yaml(
107114 expected_build_dir ,
108115 expected_flash_order ,
109116 expected_default ,
110- expected_domains
117+ expected_domains ,
111118):
112119 def mock_domain (name , build_dir , * args , ** kwargs ):
113120 return name , build_dir
114121
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+ ):
117126 doms = domains .Domains .from_yaml (data )
118127
119128 if exit_code :
@@ -133,35 +142,40 @@ def mock_domain(name, build_dir, *args, **kwargs):
133142 (
134143 None ,
135144 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+ ],
138149 ),
139150 (
140151 None ,
141152 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+ ],
144157 ),
145158 (
146159 ['some' ],
147160 False ,
148- [('some' , os .path .join ('dir' , '2' ))]
161+ [('some' , os .path .join ('dir' , '2' ))],
149162 ),
150163]
151164
165+
152166@pytest .mark .parametrize (
153167 'names, default_flash_order, expected_result' ,
154168 TESTDATA_3 ,
155- ids = ['order only' , 'no parameters' , 'valid' ]
169+ ids = ['order only' , 'no parameters' , 'valid' ],
156170)
157171def test_get_domains (
158172 caplog ,
159173 names ,
160174 default_flash_order ,
161- expected_result
175+ expected_result ,
162176):
163177 doms = domains .Domains (
164- """
178+ """
165179domains:
166180- name: dummy
167181 build_dir: dummy
@@ -171,48 +185,48 @@ def test_get_domains(
171185 )
172186 doms ._flash_order = [
173187 ('some' , os .path .join ('dir' , '2' )),
174- ('order' , os .path .join ('dir' , '1' ))
188+ ('order' , os .path .join ('dir' , '1' )),
175189 ]
176190 doms ._domains = {
177191 'order' : ('order' , os .path .join ('dir' , '1' )),
178- 'some' : ('some' , os .path .join ('dir' , '2' ))
192+ 'some' : ('some' , os .path .join ('dir' , '2' )),
179193 }
180194
181195 result = doms .get_domains (names , default_flash_order )
182196
183197 assert result == expected_result
184198
185199
186-
187200TESTDATA_3 = [
188201 (
189202 'other' ,
190203 1 ,
191204 ['domain "other" not found, valid domains are: order, some' ],
192- None
205+ None ,
193206 ),
194207 (
195208 'some' ,
196209 None ,
197210 [],
198- ('some' , os .path .join ('dir' , '2' ))
211+ ('some' , os .path .join ('dir' , '2' )),
199212 ),
200213]
201214
215+
202216@pytest .mark .parametrize (
203217 'name, exit_code, expected_logs, expected_result' ,
204218 TESTDATA_3 ,
205- ids = ['domain not found' , 'valid' ]
219+ ids = ['domain not found' , 'valid' ],
206220)
207221def test_get_domain (
208222 caplog ,
209223 name ,
210224 exit_code ,
211225 expected_logs ,
212- expected_result
226+ expected_result ,
213227):
214228 doms = domains .Domains (
215- """
229+ """
216230domains:
217231- name: dummy
218232 build_dir: dummy
@@ -222,11 +236,11 @@ def test_get_domain(
222236 )
223237 doms ._flash_order = [
224238 ('some' , os .path .join ('dir' , '2' )),
225- ('order' , os .path .join ('dir' , '1' ))
239+ ('order' , os .path .join ('dir' , '1' )),
226240 ]
227241 doms ._domains = {
228242 'order' : ('order' , os .path .join ('dir' , '1' )),
229- 'some' : ('some' , os .path .join ('dir' , '2' ))
243+ 'some' : ('some' , os .path .join ('dir' , '2' )),
230244 }
231245
232246 with pytest .raises (SystemExit ) if exit_code else nullcontext () as s_exit :
0 commit comments