Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/tests/resolver/
Date: Sun, 02 Oct 2011 02:15:07
Message-Id: a2ffa0af21d114935ea5acc9ad7253b74d7966ec.zmedico@gentoo
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()