diff options
Diffstat (limited to 'pym/portage/tests/resolver/test_autounmask.py')
-rw-r--r-- | pym/portage/tests/resolver/test_autounmask.py | 144 |
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() |