1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# Copyright 2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from portage.tests import TestCase
from portage.tests.resolver.ResolverPlayground import (
ResolverPlayground, ResolverPlaygroundTestCase)
class ChangedDepsTestCase(TestCase):
def testChangedDeps(self):
ebuilds = {
"app-misc/A-0": {
"DEPEND": "app-misc/B",
"RDEPEND": "app-misc/B",
},
"app-misc/B-0": {
}
}
binpkgs = {
"app-misc/A-0": {},
}
installed = {
"app-misc/A-0": {},
}
world= (
"app-misc/A",
)
test_cases = (
# --dynamic-deps=n causes the original deps to be respected
ResolverPlaygroundTestCase(
["@world"],
success = True,
options = {
"--update": True,
"--deep": True,
"--dynamic-deps": "n",
"--usepkg": True,
},
mergelist = []
),
# --dynamic-deps causes app-misc/B to get pulled in
ResolverPlaygroundTestCase(
["@world"],
success = True,
options = {
"--update": True,
"--deep": True,
"--dynamic-deps": "y",
"--usepkg": True,
},
mergelist = ["app-misc/B-0"]
),
# --changed-deps causes app-misc/A to be rebuilt
ResolverPlaygroundTestCase(
["@world"],
success = True,
options = {
"--update": True,
"--deep": True,
"--changed-deps": "y",
"--usepkg": True,
},
mergelist = ["app-misc/B-0", "app-misc/A-0"]
),
# --usepkgonly prevents automatic --binpkg-changed-deps
ResolverPlaygroundTestCase(
["app-misc/A"],
success = True,
options = {
"--changed-deps": "y",
"--usepkgonly": True,
},
mergelist = ["[binary]app-misc/A-0"]
),
# Test automatic --binpkg-changed-deps, which cases the
# binpkg with stale deps to be ignored (with warning
# message)
ResolverPlaygroundTestCase(
["app-misc/A"],
success = True,
options = {
"--usepkg": True,
},
mergelist = ["app-misc/B-0", "app-misc/A-0"]
),
)
test_cases = (
# Forcibly disable --binpkg-changed-deps, which causes
# --changed-deps to be overridden by --binpkg-changed-deps
ResolverPlaygroundTestCase(
["app-misc/A"],
success = True,
options = {
"--binpkg-changed-deps": "n",
"--changed-deps": "y",
"--usepkg": True,
},
mergelist = ["[binary]app-misc/A-0"]
),
)
playground = ResolverPlayground(debug=False, ebuilds=ebuilds,
binpkgs=binpkgs, installed=installed, world=world)
try:
for test_case in test_cases:
playground.run_TestCase(test_case)
self.assertEqual(test_case.test_success,
True, test_case.fail_msg)
finally:
playground.cleanup()
|