1 |
commit: a2ffa0af21d114935ea5acc9ad7253b74d7966ec |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Oct 2 02:13:20 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Oct 2 02:13:20 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=a2ffa0af |
7 |
|
8 |
Add tests for KEYWORDS masking. |
9 |
|
10 |
--- |
11 |
pym/portage/tests/resolver/ResolverPlayground.py | 2 +- |
12 |
pym/portage/tests/resolver/test_keywords.py | 356 ++++++++++++++++++++++ |
13 |
2 files changed, 357 insertions(+), 1 deletions(-) |
14 |
|
15 |
diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py |
16 |
index 9630008..ec6f631 100644 |
17 |
--- a/pym/portage/tests/resolver/ResolverPlayground.py |
18 |
+++ b/pym/portage/tests/resolver/ResolverPlayground.py |
19 |
@@ -37,7 +37,7 @@ class ResolverPlayground(object): |
20 |
its work. |
21 |
""" |
22 |
|
23 |
- config_files = frozenset(("package.use", "package.mask", "package.keywords", \ |
24 |
+ config_files = frozenset(("package.accept_keywords", "package.use", "package.mask", "package.keywords", \ |
25 |
"package.unmask", "package.properties", "package.license", "use.mask", "use.force", |
26 |
"layout.conf",)) |
27 |
|
28 |
|
29 |
diff --git a/pym/portage/tests/resolver/test_keywords.py b/pym/portage/tests/resolver/test_keywords.py |
30 |
new file mode 100644 |
31 |
index 0000000..d59ea58 |
32 |
--- /dev/null |
33 |
+++ b/pym/portage/tests/resolver/test_keywords.py |
34 |
@@ -0,0 +1,356 @@ |
35 |
+# Copyright 2011 Gentoo Foundation |
36 |
+# Distributed under the terms of the GNU General Public License v2 |
37 |
+ |
38 |
+from portage.tests import TestCase |
39 |
+from portage.tests.resolver.ResolverPlayground import (ResolverPlayground, |
40 |
+ ResolverPlaygroundTestCase) |
41 |
+ |
42 |
+class KeywordsTestCase(TestCase): |
43 |
+ |
44 |
+ def testStableConfig(self): |
45 |
+ # Only accept stable keywords for a particular ARCH. |
46 |
+ |
47 |
+ user_config = { |
48 |
+ 'package.accept_keywords': |
49 |
+ ( |
50 |
+ '*/* -* x86', |
51 |
+ ), |
52 |
+ } |
53 |
+ |
54 |
+ ebuilds = { |
55 |
+ 'app-misc/A-1': {'KEYWORDS': 'x86'}, |
56 |
+ 'app-misc/B-1': {'KEYWORDS': '~x86'}, |
57 |
+ 'app-misc/C-1': {'KEYWORDS': '*'}, |
58 |
+ 'app-misc/D-1': {'KEYWORDS': '~*'}, |
59 |
+ 'app-misc/E-1': {'KEYWORDS': 'arm'}, |
60 |
+ 'app-misc/F-1': {'KEYWORDS': '~arm'}, |
61 |
+ 'app-misc/G-1': {'KEYWORDS': ''}, |
62 |
+ } |
63 |
+ |
64 |
+ test_cases = ( |
65 |
+ |
66 |
+ ResolverPlaygroundTestCase( |
67 |
+ ['app-misc/A'], |
68 |
+ success = True, |
69 |
+ mergelist = ['app-misc/A-1']), |
70 |
+ |
71 |
+ ResolverPlaygroundTestCase( |
72 |
+ ['app-misc/B'], |
73 |
+ success = False, |
74 |
+ unstable_keywords = ('app-misc/B-1',), |
75 |
+ mergelist = ['app-misc/B-1']), |
76 |
+ |
77 |
+ ResolverPlaygroundTestCase( |
78 |
+ ['app-misc/C'], |
79 |
+ success = True, |
80 |
+ mergelist = ['app-misc/C-1']), |
81 |
+ |
82 |
+ ResolverPlaygroundTestCase( |
83 |
+ ['app-misc/D'], |
84 |
+ success = False, |
85 |
+ unstable_keywords = ('app-misc/D-1',), |
86 |
+ mergelist = ['app-misc/D-1']), |
87 |
+ |
88 |
+ ResolverPlaygroundTestCase( |
89 |
+ ['app-misc/E'], |
90 |
+ success = False, |
91 |
+ unstable_keywords = ('app-misc/E-1',), |
92 |
+ mergelist = ['app-misc/E-1']), |
93 |
+ |
94 |
+ ResolverPlaygroundTestCase( |
95 |
+ ['app-misc/F'], |
96 |
+ success = False, |
97 |
+ unstable_keywords = ('app-misc/F-1',), |
98 |
+ mergelist = ['app-misc/F-1']), |
99 |
+ |
100 |
+ ResolverPlaygroundTestCase( |
101 |
+ ['app-misc/G'], |
102 |
+ success = False, |
103 |
+ unstable_keywords = ('app-misc/G-1',), |
104 |
+ mergelist = ['app-misc/G-1']), |
105 |
+ ) |
106 |
+ |
107 |
+ playground = ResolverPlayground(ebuilds=ebuilds, |
108 |
+ user_config=user_config) |
109 |
+ try: |
110 |
+ for test_case in test_cases: |
111 |
+ playground.run_TestCase(test_case) |
112 |
+ self.assertEqual(test_case.test_success, True, test_case.fail_msg) |
113 |
+ finally: |
114 |
+ playground.cleanup() |
115 |
+ |
116 |
+ def testAnyStableConfig(self): |
117 |
+ # Accept stable keywords for any ARCH. |
118 |
+ |
119 |
+ user_config = { |
120 |
+ 'package.accept_keywords': |
121 |
+ ( |
122 |
+ '*/* -* *', |
123 |
+ ), |
124 |
+ } |
125 |
+ |
126 |
+ ebuilds = { |
127 |
+ 'app-misc/A-1': {'KEYWORDS': 'x86'}, |
128 |
+ 'app-misc/B-1': {'KEYWORDS': '~x86'}, |
129 |
+ 'app-misc/C-1': {'KEYWORDS': '*'}, |
130 |
+ 'app-misc/D-1': {'KEYWORDS': '~*'}, |
131 |
+ 'app-misc/E-1': {'KEYWORDS': 'arm'}, |
132 |
+ 'app-misc/F-1': {'KEYWORDS': '~arm'}, |
133 |
+ 'app-misc/G-1': {'KEYWORDS': ''}, |
134 |
+ } |
135 |
+ |
136 |
+ test_cases = ( |
137 |
+ |
138 |
+ ResolverPlaygroundTestCase( |
139 |
+ ['app-misc/A'], |
140 |
+ success = True, |
141 |
+ mergelist = ['app-misc/A-1']), |
142 |
+ |
143 |
+ ResolverPlaygroundTestCase( |
144 |
+ ['app-misc/B'], |
145 |
+ success = False, |
146 |
+ unstable_keywords = ('app-misc/B-1',), |
147 |
+ mergelist = ['app-misc/B-1']), |
148 |
+ |
149 |
+ ResolverPlaygroundTestCase( |
150 |
+ ['app-misc/C'], |
151 |
+ success = True, |
152 |
+ mergelist = ['app-misc/C-1']), |
153 |
+ |
154 |
+ ResolverPlaygroundTestCase( |
155 |
+ ['app-misc/D'], |
156 |
+ success = False, |
157 |
+ unstable_keywords = ('app-misc/D-1',), |
158 |
+ mergelist = ['app-misc/D-1']), |
159 |
+ |
160 |
+ ResolverPlaygroundTestCase( |
161 |
+ ['app-misc/E'], |
162 |
+ success = True, |
163 |
+ mergelist = ['app-misc/E-1']), |
164 |
+ |
165 |
+ ResolverPlaygroundTestCase( |
166 |
+ ['app-misc/F'], |
167 |
+ success = False, |
168 |
+ unstable_keywords = ('app-misc/F-1',), |
169 |
+ mergelist = ['app-misc/F-1']), |
170 |
+ |
171 |
+ ResolverPlaygroundTestCase( |
172 |
+ ['app-misc/G'], |
173 |
+ success = False, |
174 |
+ unstable_keywords = ('app-misc/G-1',), |
175 |
+ mergelist = ['app-misc/G-1']), |
176 |
+ ) |
177 |
+ |
178 |
+ playground = ResolverPlayground(ebuilds=ebuilds, |
179 |
+ user_config=user_config) |
180 |
+ try: |
181 |
+ for test_case in test_cases: |
182 |
+ playground.run_TestCase(test_case) |
183 |
+ self.assertEqual(test_case.test_success, True, test_case.fail_msg) |
184 |
+ finally: |
185 |
+ playground.cleanup() |
186 |
+ |
187 |
+ def testUnstableConfig(self): |
188 |
+ # Accept stable and unstable keywords for a particular ARCH. |
189 |
+ |
190 |
+ user_config = { |
191 |
+ 'package.accept_keywords': |
192 |
+ ( |
193 |
+ '*/* -* x86 ~x86', |
194 |
+ ), |
195 |
+ } |
196 |
+ |
197 |
+ ebuilds = { |
198 |
+ 'app-misc/A-1': {'KEYWORDS': 'x86'}, |
199 |
+ 'app-misc/B-1': {'KEYWORDS': '~x86'}, |
200 |
+ 'app-misc/C-1': {'KEYWORDS': '*'}, |
201 |
+ 'app-misc/D-1': {'KEYWORDS': '~*'}, |
202 |
+ 'app-misc/E-1': {'KEYWORDS': 'arm'}, |
203 |
+ 'app-misc/F-1': {'KEYWORDS': '~arm'}, |
204 |
+ 'app-misc/G-1': {'KEYWORDS': ''}, |
205 |
+ } |
206 |
+ |
207 |
+ test_cases = ( |
208 |
+ |
209 |
+ ResolverPlaygroundTestCase( |
210 |
+ ['app-misc/A'], |
211 |
+ success = True, |
212 |
+ mergelist = ['app-misc/A-1']), |
213 |
+ |
214 |
+ ResolverPlaygroundTestCase( |
215 |
+ ['app-misc/B'], |
216 |
+ success = True, |
217 |
+ mergelist = ['app-misc/B-1']), |
218 |
+ |
219 |
+ ResolverPlaygroundTestCase( |
220 |
+ ['app-misc/C'], |
221 |
+ success = True, |
222 |
+ mergelist = ['app-misc/C-1']), |
223 |
+ |
224 |
+ ResolverPlaygroundTestCase( |
225 |
+ ['app-misc/D'], |
226 |
+ success = True, |
227 |
+ mergelist = ['app-misc/D-1']), |
228 |
+ |
229 |
+ ResolverPlaygroundTestCase( |
230 |
+ ['app-misc/E'], |
231 |
+ success = False, |
232 |
+ unstable_keywords = ('app-misc/E-1',), |
233 |
+ mergelist = ['app-misc/E-1']), |
234 |
+ |
235 |
+ ResolverPlaygroundTestCase( |
236 |
+ ['app-misc/F'], |
237 |
+ success = False, |
238 |
+ unstable_keywords = ('app-misc/F-1',), |
239 |
+ mergelist = ['app-misc/F-1']), |
240 |
+ |
241 |
+ ResolverPlaygroundTestCase( |
242 |
+ ['app-misc/G'], |
243 |
+ success = False, |
244 |
+ unstable_keywords = ('app-misc/G-1',), |
245 |
+ mergelist = ['app-misc/G-1']), |
246 |
+ ) |
247 |
+ |
248 |
+ playground = ResolverPlayground(ebuilds=ebuilds, |
249 |
+ user_config=user_config) |
250 |
+ try: |
251 |
+ for test_case in test_cases: |
252 |
+ playground.run_TestCase(test_case) |
253 |
+ self.assertEqual(test_case.test_success, True, test_case.fail_msg) |
254 |
+ finally: |
255 |
+ playground.cleanup() |
256 |
+ |
257 |
+ def testAnyUnstableConfig(self): |
258 |
+ # Accept unstable keywords for any ARCH. |
259 |
+ |
260 |
+ user_config = { |
261 |
+ 'package.accept_keywords': |
262 |
+ ( |
263 |
+ '*/* -* * ~*', |
264 |
+ ), |
265 |
+ } |
266 |
+ |
267 |
+ ebuilds = { |
268 |
+ 'app-misc/A-1': {'KEYWORDS': 'x86'}, |
269 |
+ 'app-misc/B-1': {'KEYWORDS': '~x86'}, |
270 |
+ 'app-misc/C-1': {'KEYWORDS': '*'}, |
271 |
+ 'app-misc/D-1': {'KEYWORDS': '~*'}, |
272 |
+ 'app-misc/E-1': {'KEYWORDS': 'arm'}, |
273 |
+ 'app-misc/F-1': {'KEYWORDS': '~arm'}, |
274 |
+ 'app-misc/G-1': {'KEYWORDS': ''}, |
275 |
+ } |
276 |
+ |
277 |
+ test_cases = ( |
278 |
+ |
279 |
+ ResolverPlaygroundTestCase( |
280 |
+ ['app-misc/A'], |
281 |
+ success = True, |
282 |
+ mergelist = ['app-misc/A-1']), |
283 |
+ |
284 |
+ ResolverPlaygroundTestCase( |
285 |
+ ['app-misc/B'], |
286 |
+ success = True, |
287 |
+ mergelist = ['app-misc/B-1']), |
288 |
+ |
289 |
+ ResolverPlaygroundTestCase( |
290 |
+ ['app-misc/C'], |
291 |
+ success = True, |
292 |
+ mergelist = ['app-misc/C-1']), |
293 |
+ |
294 |
+ ResolverPlaygroundTestCase( |
295 |
+ ['app-misc/D'], |
296 |
+ success = True, |
297 |
+ mergelist = ['app-misc/D-1']), |
298 |
+ |
299 |
+ ResolverPlaygroundTestCase( |
300 |
+ ['app-misc/E'], |
301 |
+ success = True, |
302 |
+ mergelist = ['app-misc/E-1']), |
303 |
+ |
304 |
+ ResolverPlaygroundTestCase( |
305 |
+ ['app-misc/F'], |
306 |
+ success = True, |
307 |
+ mergelist = ['app-misc/F-1']), |
308 |
+ |
309 |
+ ResolverPlaygroundTestCase( |
310 |
+ ['app-misc/G'], |
311 |
+ success = False, |
312 |
+ unstable_keywords = ('app-misc/G-1',), |
313 |
+ mergelist = ['app-misc/G-1']), |
314 |
+ ) |
315 |
+ |
316 |
+ playground = ResolverPlayground(ebuilds=ebuilds, |
317 |
+ user_config=user_config) |
318 |
+ try: |
319 |
+ for test_case in test_cases: |
320 |
+ playground.run_TestCase(test_case) |
321 |
+ self.assertEqual(test_case.test_success, True, test_case.fail_msg) |
322 |
+ finally: |
323 |
+ playground.cleanup() |
324 |
+ |
325 |
+ def testIgnoreKeywordsConfig(self): |
326 |
+ # Ignore keywords entirely (accept **) |
327 |
+ |
328 |
+ user_config = { |
329 |
+ 'package.accept_keywords': |
330 |
+ ( |
331 |
+ '*/* -* **', |
332 |
+ ), |
333 |
+ } |
334 |
+ |
335 |
+ ebuilds = { |
336 |
+ 'app-misc/A-1': {'KEYWORDS': 'x86'}, |
337 |
+ 'app-misc/B-1': {'KEYWORDS': '~x86'}, |
338 |
+ 'app-misc/C-1': {'KEYWORDS': '*'}, |
339 |
+ 'app-misc/D-1': {'KEYWORDS': '~*'}, |
340 |
+ 'app-misc/E-1': {'KEYWORDS': 'arm'}, |
341 |
+ 'app-misc/F-1': {'KEYWORDS': '~arm'}, |
342 |
+ 'app-misc/G-1': {'KEYWORDS': ''}, |
343 |
+ } |
344 |
+ |
345 |
+ test_cases = ( |
346 |
+ |
347 |
+ ResolverPlaygroundTestCase( |
348 |
+ ['app-misc/A'], |
349 |
+ success = True, |
350 |
+ mergelist = ['app-misc/A-1']), |
351 |
+ |
352 |
+ ResolverPlaygroundTestCase( |
353 |
+ ['app-misc/B'], |
354 |
+ success = True, |
355 |
+ mergelist = ['app-misc/B-1']), |
356 |
+ |
357 |
+ ResolverPlaygroundTestCase( |
358 |
+ ['app-misc/C'], |
359 |
+ success = True, |
360 |
+ mergelist = ['app-misc/C-1']), |
361 |
+ |
362 |
+ ResolverPlaygroundTestCase( |
363 |
+ ['app-misc/D'], |
364 |
+ success = True, |
365 |
+ mergelist = ['app-misc/D-1']), |
366 |
+ |
367 |
+ ResolverPlaygroundTestCase( |
368 |
+ ['app-misc/E'], |
369 |
+ success = True, |
370 |
+ mergelist = ['app-misc/E-1']), |
371 |
+ |
372 |
+ ResolverPlaygroundTestCase( |
373 |
+ ['app-misc/F'], |
374 |
+ success = True, |
375 |
+ mergelist = ['app-misc/F-1']), |
376 |
+ |
377 |
+ ResolverPlaygroundTestCase( |
378 |
+ ['app-misc/G'], |
379 |
+ success = True, |
380 |
+ mergelist = ['app-misc/G-1']), |
381 |
+ ) |
382 |
+ |
383 |
+ playground = ResolverPlayground(ebuilds=ebuilds, |
384 |
+ user_config=user_config) |
385 |
+ try: |
386 |
+ for test_case in test_cases: |
387 |
+ playground.run_TestCase(test_case) |
388 |
+ self.assertEqual(test_case.test_success, True, test_case.fail_msg) |
389 |
+ finally: |
390 |
+ playground.cleanup() |