From 5c02700c9891922ba9af48165273b91bf52e314a Mon Sep 17 00:00:00 2001 From: Arfrever Frehtes Taifersar Arahesis Date: Thu, 15 Nov 2012 08:19:21 +0100 Subject: EAPI="4-python" and EAPI="5-progress": Add support for use.aliases and package.use.aliases. --- pym/portage/tests/resolver/ResolverPlayground.py | 8 +- pym/portage/tests/resolver/test_use_aliases.py | 131 +++++++++++++++++++++++ 2 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 pym/portage/tests/resolver/test_use_aliases.py (limited to 'pym/portage/tests') diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py index 62aafb56e..9b30edbee 100644 --- a/pym/portage/tests/resolver/ResolverPlayground.py +++ b/pym/portage/tests/resolver/ResolverPlayground.py @@ -34,10 +34,10 @@ class ResolverPlayground(object): its work. """ - config_files = frozenset(("eapi", "make.conf", "package.accept_keywords", "package.use", - "package.use.stable.mask", "package.mask", "package.keywords", - "package.unmask", "package.properties", "package.license", "use.mask", "use.force", - "layout.conf",)) + config_files = frozenset(("eapi", "layout.conf", "make.conf", "package.accept_keywords", + "package.keywords", "package.license", "package.mask", "package.properties", + "package.unmask", "package.use", "package.use.aliases", "package.use.stable.mask", + "use.aliases", "use.force", "use.mask", "layout.conf")) metadata_xml_template = """ diff --git a/pym/portage/tests/resolver/test_use_aliases.py b/pym/portage/tests/resolver/test_use_aliases.py new file mode 100644 index 000000000..7c2debbb1 --- /dev/null +++ b/pym/portage/tests/resolver/test_use_aliases.py @@ -0,0 +1,131 @@ +# Copyright 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 UseAliasesTestCase(TestCase): + def testUseAliases(self): + ebuilds = { + "dev-libs/A-1": {"DEPEND": "dev-libs/K[x]", "RDEPEND": "dev-libs/K[x]", "EAPI": "5"}, + "dev-libs/B-1": {"DEPEND": "dev-libs/L[x]", "RDEPEND": "dev-libs/L[x]", "EAPI": "5"}, + "dev-libs/C-1": {"DEPEND": "dev-libs/M[xx]", "RDEPEND": "dev-libs/M[xx]", "EAPI": "5"}, + "dev-libs/D-1": {"DEPEND": "dev-libs/N[-x]", "RDEPEND": "dev-libs/N[-x]", "EAPI": "5"}, + "dev-libs/E-1": {"DEPEND": "dev-libs/O[-xx]", "RDEPEND": "dev-libs/O[-xx]", "EAPI": "5"}, + "dev-libs/F-1": {"DEPEND": "dev-libs/P[-xx]", "RDEPEND": "dev-libs/P[-xx]", "EAPI": "5"}, + "dev-libs/G-1": {"DEPEND": "dev-libs/Q[x-y]", "RDEPEND": "dev-libs/Q[x-y]", "EAPI": "5"}, + "dev-libs/H-1": {"DEPEND": "=dev-libs/R-1*[yy]", "RDEPEND": "=dev-libs/R-1*[yy]", "EAPI": "5"}, + "dev-libs/H-2": {"DEPEND": "=dev-libs/R-2*[yy]", "RDEPEND": "=dev-libs/R-2*[yy]", "EAPI": "5"}, + "dev-libs/I-1": {"DEPEND": "dev-libs/S[y-z]", "RDEPEND": "dev-libs/S[y-z]", "EAPI": "5"}, + "dev-libs/I-2": {"DEPEND": "dev-libs/S[y_z]", "RDEPEND": "dev-libs/S[y_z]", "EAPI": "5"}, + "dev-libs/J-1": {"DEPEND": "dev-libs/T[x]", "RDEPEND": "dev-libs/T[x]", "EAPI": "5"}, + "dev-libs/K-1": {"IUSE": "+x", "EAPI": "5"}, + "dev-libs/K-2::repo1": {"IUSE": "+X", "EAPI": "5-progress"}, + "dev-libs/L-1": {"IUSE": "+x", "EAPI": "5"}, + "dev-libs/M-1::repo1": {"IUSE": "X", "EAPI": "5-progress"}, + "dev-libs/N-1": {"IUSE": "x", "EAPI": "5"}, + "dev-libs/N-2::repo1": {"IUSE": "X", "EAPI": "5-progress"}, + "dev-libs/O-1": {"IUSE": "x", "EAPI": "5"}, + "dev-libs/P-1::repo1": {"IUSE": "+X", "EAPI": "5-progress"}, + "dev-libs/Q-1::repo2": {"IUSE": "X.Y", "EAPI": "5-progress"}, + "dev-libs/R-1::repo1": {"IUSE": "Y", "EAPI": "5-progress"}, + "dev-libs/R-2::repo1": {"IUSE": "y", "EAPI": "5-progress"}, + "dev-libs/S-1::repo2": {"IUSE": "Y.Z", "EAPI": "5-progress"}, + "dev-libs/S-2::repo2": {"IUSE": "Y.Z", "EAPI": "5-progress"}, + "dev-libs/T-1::repo1": {"IUSE": "+X", "EAPI": "5"}, + } + + installed = { + "dev-libs/L-2::repo1": {"IUSE": "+X", "USE": "X", "EAPI": "5-progress"}, + "dev-libs/O-2::repo1": {"IUSE": "X", "USE": "", "EAPI": "5-progress"}, + } + + repo_configs = { + "repo1": { + "use.aliases": ("X x xx",), + "package.use.aliases": ( + "=dev-libs/R-1* Y yy", + "=dev-libs/R-2* y yy", + ) + }, + "repo2": { + "eapi": ("5-progress",), + "use.aliases": ("X.Y x-y",), + "package.use.aliases": ( + "=dev-libs/S-1* Y.Z y-z", + "=dev-libs/S-2* Y.Z y_z", + ), + }, + } + + test_cases = ( + ResolverPlaygroundTestCase( + ["dev-libs/A"], + success = True, + mergelist = ["dev-libs/K-2", "dev-libs/A-1"]), + ResolverPlaygroundTestCase( + ["dev-libs/B"], + success = True, + mergelist = ["dev-libs/B-1"]), + ResolverPlaygroundTestCase( + ["dev-libs/C"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/M-1", "dev-libs/C-1"], + use_changes = {"dev-libs/M-1": {"X": True}}), + ResolverPlaygroundTestCase( + ["dev-libs/D"], + success = True, + mergelist = ["dev-libs/N-2", "dev-libs/D-1"]), + ResolverPlaygroundTestCase( + ["dev-libs/E"], + success = True, + mergelist = ["dev-libs/E-1"]), + ResolverPlaygroundTestCase( + ["dev-libs/F"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/P-1", "dev-libs/F-1"], + use_changes = {"dev-libs/P-1": {"X": False}}), + ResolverPlaygroundTestCase( + ["dev-libs/G"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/Q-1", "dev-libs/G-1"], + use_changes = {"dev-libs/Q-1": {"X.Y": True}}), + ResolverPlaygroundTestCase( + ["=dev-libs/H-1*"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/R-1", "dev-libs/H-1"], + use_changes = {"dev-libs/R-1": {"Y": True}}), + ResolverPlaygroundTestCase( + ["=dev-libs/H-2*"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/R-2", "dev-libs/H-2"], + use_changes = {"dev-libs/R-2": {"y": True}}), + ResolverPlaygroundTestCase( + ["=dev-libs/I-1*"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/S-1", "dev-libs/I-1"], + use_changes = {"dev-libs/S-1": {"Y.Z": True}}), + ResolverPlaygroundTestCase( + ["=dev-libs/I-2*"], + options = {"--autounmask": True}, + success = False, + mergelist = ["dev-libs/S-2", "dev-libs/I-2"], + use_changes = {"dev-libs/S-2": {"Y.Z": True}}), + ResolverPlaygroundTestCase( + ["dev-libs/J"], + success = False), + ) + + playground = ResolverPlayground(ebuilds=ebuilds, installed=installed, repo_configs=repo_configs) + 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() -- cgit v1.2.3-1-g7c22