summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-05-20 20:30:30 -0700
committerZac Medico <zmedico@gentoo.org>2011-05-25 20:42:58 -0700
commit93a393b112a2810c62903ced87cb0c267b94160c (patch)
treeeb66bc24f01abc7c99fabd86b2fe4de125a1c5d3 /pym
parent9b1025750023ff2e0193a6934d92ce382e523ff7 (diff)
downloadportage-93a393b112a2810c62903ced87cb0c267b94160c.tar.gz
portage-93a393b112a2810c62903ced87cb0c267b94160c.tar.bz2
portage-93a393b112a2810c62903ced87cb0c267b94160c.zip
test_merge_order: test blocker resolution
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/tests/resolver/ResolverPlayground.py6
-rw-r--r--pym/portage/tests/resolver/test_merge_order.py23
2 files changed, 29 insertions, 0 deletions
diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py
index 402db7bae..667731b1b 100644
--- a/pym/portage/tests/resolver/ResolverPlayground.py
+++ b/pym/portage/tests/resolver/ResolverPlayground.py
@@ -502,6 +502,9 @@ class ResolverPlaygroundTestCase(object):
if got:
new_got = []
for cpv in got:
+ if cpv[:1] == "!":
+ new_got.append(cpv)
+ continue
a = Atom("="+cpv, allow_repo=True)
new_got.append(a.cpv)
got = new_got
@@ -509,6 +512,9 @@ class ResolverPlaygroundTestCase(object):
new_expected = []
for obj in expected:
if isinstance(obj, basestring):
+ if obj[:1] == "!":
+ new_expected.append(obj)
+ continue
a = Atom("="+obj, allow_repo=True)
new_expected.append(a.cpv)
continue
diff --git a/pym/portage/tests/resolver/test_merge_order.py b/pym/portage/tests/resolver/test_merge_order.py
index a59a67870..6c929f729 100644
--- a/pym/portage/tests/resolver/test_merge_order.py
+++ b/pym/portage/tests/resolver/test_merge_order.py
@@ -9,6 +9,8 @@ class MergeOrderTestCase(TestCase):
def testMergeOrder(self):
ebuilds = {
+ "app-misc/blocker-buildtime-a-1" : {},
+ "app-misc/blocker-runtime-a-1" : {},
"app-misc/circ-post-runtime-a-1": {
"PDEPEND": "app-misc/circ-post-runtime-b",
},
@@ -21,6 +23,10 @@ class MergeOrderTestCase(TestCase):
"app-misc/circ-runtime-b-1": {
"RDEPEND": "app-misc/circ-runtime-a",
},
+ "app-misc/installed-blocker-a-1" : {
+ "DEPEND" : "!app-misc/blocker-buildtime-a",
+ "RDEPEND" : "!app-misc/blocker-runtime-a",
+ },
"app-misc/some-app-a-1": {
"RDEPEND": "app-misc/circ-runtime-a app-misc/circ-runtime-b",
},
@@ -30,6 +36,10 @@ class MergeOrderTestCase(TestCase):
}
installed = {
+ "app-misc/installed-blocker-a-1" : {
+ "DEPEND" : "!app-misc/blocker-buildtime-a",
+ "RDEPEND" : "!app-misc/blocker-runtime-a",
+ }
}
test_cases = (
@@ -49,6 +59,19 @@ class MergeOrderTestCase(TestCase):
["app-misc/some-app-b"],
success = True,
mergelist = ["app-misc/circ-post-runtime-a-1", "app-misc/circ-post-runtime-b-1", "app-misc/some-app-b-1"]),
+ # installed package has buildtime-only blocker
+ # that should be ignored
+ ResolverPlaygroundTestCase(
+ ["app-misc/blocker-buildtime-a"],
+ success = True,
+ mergelist = ["app-misc/blocker-buildtime-a-1"]),
+ # installed package has runtime blocker that
+ # should cause it to be uninstalled
+ # TODO: distinguish between install/uninstall tasks in mergelist
+ ResolverPlaygroundTestCase(
+ ["app-misc/blocker-runtime-a"],
+ success = True,
+ mergelist = ["app-misc/blocker-runtime-a-1", "app-misc/installed-blocker-a-1", "!app-misc/blocker-runtime-a"]),
)
playground = ResolverPlayground(ebuilds=ebuilds, installed=installed)