# Copyright 2010-2012 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 SimpleResolverTestCase(TestCase): def testSimple(self): ebuilds = { "dev-libs/A-1": { "KEYWORDS": "x86" }, "dev-libs/A-2": { "KEYWORDS": "~x86" }, "dev-libs/B-1.2": {}, "app-misc/Z-1": { "DEPEND": "|| ( app-misc/Y ( app-misc/X app-misc/W ) )", "RDEPEND": "" }, "app-misc/Y-1": { "KEYWORDS": "~x86" }, "app-misc/X-1": {}, "app-misc/W-1": {}, } binpkgs = { "dev-libs/B-1.2": {}, } installed = { "dev-libs/A-1": {}, "dev-libs/B-1.1": {}, } test_cases = ( ResolverPlaygroundTestCase(["dev-libs/A"], success = True, mergelist = ["dev-libs/A-1"]), ResolverPlaygroundTestCase(["=dev-libs/A-2"], options = { "--autounmask": 'n' }, success = False), ResolverPlaygroundTestCase( ["dev-libs/A"], options = {"--noreplace": True}, success = True, mergelist = []), ResolverPlaygroundTestCase( ["dev-libs/B"], options = {"--noreplace": True}, success = True, mergelist = []), ResolverPlaygroundTestCase( ["dev-libs/B"], options = {"--update": True}, success = True, mergelist = ["dev-libs/B-1.2"]), ResolverPlaygroundTestCase( ["dev-libs/B"], options = {"--update": True, "--usepkg": True}, success = True, mergelist = ["[binary]dev-libs/B-1.2"]), ResolverPlaygroundTestCase( ["dev-libs/B"], options = {"--update": True, "--usepkgonly": True}, success = True, mergelist = ["[binary]dev-libs/B-1.2"]), ResolverPlaygroundTestCase( ["app-misc/Z"], success = True, ambiguous_merge_order = True, mergelist = [("app-misc/W-1", "app-misc/X-1"), "app-misc/Z-1"]), ) playground = ResolverPlayground(ebuilds=ebuilds, binpkgs=binpkgs, installed=installed) 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()