From 93a393b112a2810c62903ced87cb0c267b94160c Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 20 May 2011 20:30:30 -0700 Subject: [PATCH] test_merge_order: test blocker resolution --- .../tests/resolver/ResolverPlayground.py | 6 +++++ .../tests/resolver/test_merge_order.py | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+) 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) -- 2.26.2