summaryrefslogtreecommitdiffstats
path: root/pym/portage/tests/resolver/test_autounmask.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/tests/resolver/test_autounmask.py')
-rw-r--r--pym/portage/tests/resolver/test_autounmask.py144
1 files changed, 90 insertions, 54 deletions
diff --git a/pym/portage/tests/resolver/test_autounmask.py b/pym/portage/tests/resolver/test_autounmask.py
index d528f9077..bb7ff0ad7 100644
--- a/pym/portage/tests/resolver/test_autounmask.py
+++ b/pym/portage/tests/resolver/test_autounmask.py
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
from portage.tests import TestCase
-from portage.tests.resolver.ResolverPlayground import ResolverPlayground
+from portage.tests.resolver.ResolverPlayground import ResolverPlayground, ResolverPlaygroundTestCase
class AutounmaskTestCase(TestCase):
@@ -37,80 +37,116 @@ class AutounmaskTestCase(TestCase):
"sci-libs/P-1": { },
}
- requests = (
+ test_cases = (
#Test USE changes.
#The simple case.
- (["dev-libs/A:1"], {"--autounmask": "n"}, None, False, None, None, None),
- (["dev-libs/A:1"], {"--autounmask": True}, None, False, \
- ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"], { "dev-libs/B-1": {"foo": True} }, None),
+ ResolverPlaygroundTestCase(
+ ["dev-libs/A:1"],
+ options = {"--autounmask": "n"},
+ success = False),
+ ResolverPlaygroundTestCase(
+ ["dev-libs/A:1"],
+ options = {"--autounmask": True},
+ success = False,
+ mergelist = ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"],
+ use_changes = { "dev-libs/B-1": {"foo": True} } ),
#Make sure we restart if needed.
- (["dev-libs/B", "dev-libs/A:1"], {"--autounmask": True}, None, False, \
- ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"], { "dev-libs/B-1": {"foo": True} }, None),
- (["dev-libs/A:1", "dev-libs/B"], {"--autounmask": True}, None, False, \
- ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"], { "dev-libs/B-1": {"foo": True} }, None),
- (["dev-libs/A:1", "dev-libs/A:2"], {"--autounmask": True}, None, False, \
- ["dev-libs/D-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", "dev-libs/A-2"], \
- { "dev-libs/B-1": {"foo": True, "bar": True} }, None),
- (["dev-libs/B", "dev-libs/A:1", "dev-libs/A:2"], {"--autounmask": True}, None, False, \
- ["dev-libs/D-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", "dev-libs/A-2"], \
- { "dev-libs/B-1": {"foo": True, "bar": True} }, None),
- (["dev-libs/A:1", "dev-libs/B", "dev-libs/A:2"], {"--autounmask": True}, None, False, \
- ["dev-libs/D-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", "dev-libs/A-2"], \
- { "dev-libs/B-1": {"foo": True, "bar": True} }, None),
- (["dev-libs/A:1", "dev-libs/A:2", "dev-libs/B"], {"--autounmask": True}, None, False, \
- ["dev-libs/D-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", "dev-libs/A-2"], \
- { "dev-libs/B-1": {"foo": True, "bar": True} }, None),
+ ResolverPlaygroundTestCase(
+ ["dev-libs/A:1", "dev-libs/B"],
+ options = {"--autounmask": True},
+ all_permutations = True,
+ success = False,
+ mergelist = ["dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1"],
+ use_changes = { "dev-libs/B-1": {"foo": True} } ),
+ ResolverPlaygroundTestCase(
+ ["dev-libs/A:1", "dev-libs/A:2", "dev-libs/B"],
+ options = {"--autounmask": True},
+ all_permutations = True,
+ success = False,
+ mergelist = ["dev-libs/D-1", "dev-libs/C-1", "dev-libs/B-1", "dev-libs/A-1", "dev-libs/A-2"],
+ ignore_mergelist_order = True,
+ use_changes = { "dev-libs/B-1": {"foo": True, "bar": True} } ),
#Test keywording.
#The simple case.
- (["app-misc/Z"], {"--autounmask": "n"}, None, False, None, None, None),
- (["app-misc/Z"], {"--autounmask": True}, None, False, \
- ["app-misc/Y-1", "app-misc/Z-1"], None, ["app-misc/Y-1", "app-misc/Z-1"]),
+ ResolverPlaygroundTestCase(
+ ["app-misc/Z"],
+ options = {"--autounmask": "n"},
+ success = False),
+ ResolverPlaygroundTestCase(
+ ["app-misc/Z"],
+ options = {"--autounmask": True},
+ success = False,
+ mergelist = ["app-misc/Y-1", "app-misc/Z-1"],
+ unstable_keywords = ["app-misc/Y-1", "app-misc/Z-1"]),
#Make sure that the backtracking for slot conflicts handles our mess.
- (["=app-misc/V-1", "app-misc/W"], {"--autounmask": True}, None, False, \
- ["app-misc/W-2", "app-misc/V-1"], None, ["app-misc/W-2", "app-misc/V-1"]),
- (["app-misc/W", "=app-misc/V-1"], {"--autounmask": True}, None, False, \
- ["app-misc/W-2", "app-misc/V-1"], None, ["app-misc/W-2", "app-misc/V-1"]),
+ ResolverPlaygroundTestCase(
+ ["=app-misc/V-1", "app-misc/W"],
+ options = {"--autounmask": True},
+ all_permutations = True,
+ success = False,
+ mergelist = ["app-misc/W-2", "app-misc/V-1"],
+ unstable_keywords = ["app-misc/W-2", "app-misc/V-1"]),
#Mixed testing
#Make sure we don't change use for something in a || dep if there is another choice
#that needs no change.
-
- (["=sci-libs/K-1"], {"--autounmask": True}, None, True, \
- ["sci-libs/P-1", "sci-libs/K-1"], None, None),
- (["=sci-libs/K-2"], {"--autounmask": True}, None, True, \
- ["sci-libs/P-1", "sci-libs/K-2"], None, None),
- (["=sci-libs/K-3"], {"--autounmask": True}, None, True, \
- ["sci-libs/P-1", "sci-libs/K-3"], None, None),
- (["=sci-libs/K-4"], {"--autounmask": True}, None, True, \
- ["sci-libs/P-1", "sci-libs/K-4"], None, None),
- (["=sci-libs/K-5"], {"--autounmask": True}, None, True, \
- ["sci-libs/P-1", "sci-libs/K-5"], None, None),
- (["=sci-libs/K-6"], {"--autounmask": True}, None, True, \
- ["sci-libs/P-1", "sci-libs/K-6"], None, None),
+
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-1"],
+ options = {"--autounmask": True},
+ success = True,
+ mergelist = ["sci-libs/P-1", "sci-libs/K-1"]),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-2"],
+ options = {"--autounmask": True},
+ success = True,
+ mergelist = ["sci-libs/P-1", "sci-libs/K-2"]),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-3"],
+ options = {"--autounmask": True},
+ success = True,
+ mergelist = ["sci-libs/P-1", "sci-libs/K-3"]),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-4"],
+ options = {"--autounmask": True},
+ success = True,
+ mergelist = ["sci-libs/P-1", "sci-libs/K-4"]),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-5"],
+ options = {"--autounmask": True},
+ success = True,
+ mergelist = ["sci-libs/P-1", "sci-libs/K-5"]),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-6"],
+ options = {"--autounmask": True},
+ success = True,
+ mergelist = ["sci-libs/P-1", "sci-libs/K-6"]),
#Make sure we prefer use changes over keyword changes.
- (["=sci-libs/K-7"], {"--autounmask": True}, None, False, \
- ["sci-libs/L-1", "sci-libs/K-7"], { "sci-libs/L-1": { "bar": True } }, None),
- (["=sci-libs/K-8"], {"--autounmask": True}, None, False, \
- ["sci-libs/L-1", "sci-libs/K-8"], { "sci-libs/L-1": { "bar": True } }, None),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-7"],
+ options = {"--autounmask": True},
+ success = False,
+ mergelist = ["sci-libs/L-1", "sci-libs/K-7"],
+ use_changes = { "sci-libs/L-1": { "bar": True } }),
+ ResolverPlaygroundTestCase(
+ ["=sci-libs/K-8"],
+ options = {"--autounmask": True},
+ success = False,
+ mergelist = ["sci-libs/L-1", "sci-libs/K-8"],
+ use_changes = { "sci-libs/L-1": { "bar": True } }),
)
playground = ResolverPlayground(ebuilds=ebuilds)
try:
- for atoms, options, action, expected_result, expected_mergelist, \
- expected_use_changes, expected_unstable_keywords in requests:
- result = playground.run(atoms, options, action)
- if expected_unstable_keywords is not None:
- expected_unstable_keywords = set(expected_unstable_keywords)
- self.assertEqual(
- (result.success, result.mergelist, result.use_changes, result.unstable_keywords),
- (expected_result, expected_mergelist, expected_use_changes, expected_unstable_keywords)
- )
+ 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()