1 # Copyright 2010 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
4 from portage.tests import TestCase
5 from portage.tests.resolver.ResolverPlayground import ResolverPlayground, ResolverPlaygroundTestCase
7 class MultirepoTestCase(TestCase):
9 def testMultirepo(self):
11 #Simple repo selection
13 "dev-libs/A-1::repo1": { },
14 "dev-libs/A-2::repo1": { },
15 "dev-libs/A-1::repo2": { },
17 #Packges in exactly one repo
19 "dev-libs/C-1::repo1": { },
21 #Package in repository 1 and 2, but 1 must be used
22 "dev-libs/D-1::repo1": { },
23 "dev-libs/D-1::repo2": { },
26 "dev-libs/E-1::repo1": { },
27 "dev-libs/E-1::repo2": { "SLOT": "1" },
29 "dev-libs/F-1::repo1": { "SLOT": "1" },
30 "dev-libs/F-1::repo2": { "SLOT": "1" },
35 ( "dev-libs/A::test_repo", )
39 #Simple repo selection
40 ResolverPlaygroundTestCase(
43 check_repo_names = True,
44 mergelist = ["dev-libs/A-2::repo1"]),
45 ResolverPlaygroundTestCase(
46 ["dev-libs/A::test_repo"],
48 check_repo_names = True,
49 mergelist = ["dev-libs/A-1"]),
50 ResolverPlaygroundTestCase(
51 ["dev-libs/A::repo2"],
53 check_repo_names = True,
54 mergelist = ["dev-libs/A-1::repo2"]),
55 ResolverPlaygroundTestCase(
56 ["=dev-libs/A-1::repo1"],
58 check_repo_names = True,
59 mergelist = ["dev-libs/A-1::repo1"]),
60 ResolverPlaygroundTestCase(
63 check_repo_names = True,
64 mergelist = ["dev-libs/A-1"]),
66 #Packges in exactly one repo
67 ResolverPlaygroundTestCase(
70 check_repo_names = True,
71 mergelist = ["dev-libs/B-1"]),
72 ResolverPlaygroundTestCase(
75 check_repo_names = True,
76 mergelist = ["dev-libs/C-1::repo1"]),
78 #Package in repository 1 and 2, but 1 must be used
79 ResolverPlaygroundTestCase(
82 check_repo_names = True,
83 mergelist = ["dev-libs/D-1::repo1"]),
86 ResolverPlaygroundTestCase(
89 check_repo_names = True,
90 mergelist = ["dev-libs/E-1::repo1"]),
91 ResolverPlaygroundTestCase(
92 ["dev-libs/E:1::repo2"],
94 check_repo_names = True,
95 mergelist = ["dev-libs/E-1::repo2"]),
96 ResolverPlaygroundTestCase(
99 check_repo_names = True,
100 mergelist = ["dev-libs/E-1::repo2"]),
101 ResolverPlaygroundTestCase(
104 check_repo_names = True,
105 mergelist = ["dev-libs/F-1::repo1"]),
106 ResolverPlaygroundTestCase(
109 check_repo_names = True,
110 mergelist = ["dev-libs/F-1::repo1"]),
111 ResolverPlaygroundTestCase(
112 ["=dev-libs/F-1:1::repo2"],
114 check_repo_names = True,
115 mergelist = ["dev-libs/F-1::repo2"]),
118 playground = ResolverPlayground(ebuilds=ebuilds, sets=sets)
120 for test_case in test_cases:
121 playground.run_TestCase(test_case)
122 self.assertEqual(test_case.test_success, True, test_case.fail_msg)
127 def testMultirepoUserConfig(self):
130 "dev-libs/A-1": { "IUSE": "foo" },
131 "dev-libs/A-2::repo1": { "IUSE": "foo" },
132 "dev-libs/A-3::repo2": { },
133 "dev-libs/B-1": { "DEPEND": "dev-libs/A", "EAPI": 2 },
134 "dev-libs/B-2": { "DEPEND": "dev-libs/A[foo]", "EAPI": 2 },
135 "dev-libs/B-3": { "DEPEND": "dev-libs/A[-foo]", "EAPI": 2 },
137 #package.keywords test
138 "dev-libs/C-1": { "KEYWORDS": "~x86" },
139 "dev-libs/C-1::repo1": { "KEYWORDS": "~x86" },
142 "dev-libs/D-1": { "LICENSE": "TEST" },
143 "dev-libs/D-1::repo1": { "LICENSE": "TEST" },
147 "dev-libs/E-1::repo1": { },
149 "dev-libs/H-1::repo1": { },
152 "dev-libs/F-1": { "PROPERTIES": "bar"},
153 "dev-libs/F-1::repo1": { "PROPERTIES": "bar"},
157 "dev-libs/G-1::repo1": { },
163 "dev-libs/A::repo1 foo",
167 "=dev-libs/C-1::test_repo",
171 "=dev-libs/D-1::test_repo TEST",
177 #needed for package.unmask test
180 "package.properties":
182 "dev-libs/F::repo1 -bar",
186 "dev-libs/G::test_repo",
192 ResolverPlaygroundTestCase(
195 check_repo_names = True,
196 mergelist = ["dev-libs/A-3::repo2", "dev-libs/B-1"]),
197 ResolverPlaygroundTestCase(
200 check_repo_names = True,
201 mergelist = ["dev-libs/A-2::repo1", "dev-libs/B-2"]),
202 ResolverPlaygroundTestCase(
205 check_repo_names = True,
206 mergelist = ["dev-libs/A-1", "dev-libs/B-3"]),
208 #package.keywords test
209 ResolverPlaygroundTestCase(
212 check_repo_names = True,
213 mergelist = ["dev-libs/C-1"]),
215 #package.license test
216 ResolverPlaygroundTestCase(
219 check_repo_names = True,
220 mergelist = ["dev-libs/D-1"]),
223 ResolverPlaygroundTestCase(
226 check_repo_names = True,
227 mergelist = ["dev-libs/E-1"]),
229 #package.properties test
230 ResolverPlaygroundTestCase(
233 check_repo_names = True,
234 mergelist = ["dev-libs/F-1"]),
237 ResolverPlaygroundTestCase(
240 check_repo_names = True,
241 mergelist = ["dev-libs/G-1"]),
242 ResolverPlaygroundTestCase(
247 playground = ResolverPlayground(ebuilds=ebuilds, user_config=user_config, debug=True)
249 for test_case in test_cases:
250 playground.run_TestCase(test_case)
251 self.assertEqual(test_case.test_success, True, test_case.fail_msg)