summaryrefslogtreecommitdiffstats
path: root/pym/portage/tests/resolver
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-09-21 12:32:19 -0700
committerZac Medico <zmedico@gentoo.org>2011-09-21 12:32:19 -0700
commit2733ea17d8e25db8dd369e8890337ddb553e2509 (patch)
tree8017996740d2d9bc780eeed5592a77513c02a041 /pym/portage/tests/resolver
parentf127d25373a42f3200a331b7f2641a1cf0e90b50 (diff)
downloadportage-2733ea17d8e25db8dd369e8890337ddb553e2509.tar.gz
portage-2733ea17d8e25db8dd369e8890337ddb553e2509.tar.bz2
portage-2733ea17d8e25db8dd369e8890337ddb553e2509.zip
emerge: add --complete-graph-if-new-ver < y | n >
Trigger the --complete-graph behavior if an installed package version will change (upgrade or downgrade). This option is enabled by default.
Diffstat (limited to 'pym/portage/tests/resolver')
-rw-r--r--pym/portage/tests/resolver/test_complete_graph.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/pym/portage/tests/resolver/test_complete_graph.py b/pym/portage/tests/resolver/test_complete_graph.py
new file mode 100644
index 000000000..07206430e
--- /dev/null
+++ b/pym/portage/tests/resolver/test_complete_graph.py
@@ -0,0 +1,66 @@
+# Copyright 2011 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 CompleteGraphTestCase(TestCase):
+
+ def testCompleteGraphVersionChange(self):
+ """
+ Prevent reverse dependency breakage triggered by version changes.
+ """
+
+ ebuilds = {
+ "sys-libs/x-0.1": {},
+ "sys-libs/x-1": {},
+ "sys-libs/x-2": {},
+ "sys-apps/a-1": {"RDEPEND" : ">=sys-libs/x-1 <sys-libs/x-2"},
+ }
+
+ installed = {
+ "sys-libs/x-1": {},
+ "sys-apps/a-1": {"RDEPEND" : ">=sys-libs/x-1 <sys-libs/x-2"},
+ }
+
+ world = ["sys-apps/a"]
+
+ test_cases = (
+ ResolverPlaygroundTestCase(
+ [">=sys-libs/x-2"],
+ options = {"--complete-graph-if-new-ver" : "n"},
+ mergelist = ["sys-libs/x-2"],
+ success = True,
+ ),
+ ResolverPlaygroundTestCase(
+ [">=sys-libs/x-2"],
+ options = {"--complete-graph-if-new-ver" : "y"},
+ mergelist = ["sys-libs/x-2"],
+ slot_collision_solutions = [],
+ success = False,
+ ),
+ ResolverPlaygroundTestCase(
+ ["<sys-libs/x-1"],
+ options = {"--complete-graph-if-new-ver" : "n"},
+ mergelist = ["sys-libs/x-0.1"],
+ success = True,
+ ),
+ ResolverPlaygroundTestCase(
+ ["<sys-libs/x-1"],
+ options = {"--complete-graph-if-new-ver" : "y"},
+ mergelist = ["sys-libs/x-0.1"],
+ slot_collision_solutions = [],
+ success = False,
+ ),
+ )
+
+ playground = ResolverPlayground(ebuilds=ebuilds,
+ installed=installed, world=world, debug=False)
+
+ 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()