diff options
Diffstat (limited to 'pym/portage')
-rw-r--r-- | pym/portage/package/ebuild/getmaskingstatus.py | 2 | ||||
-rw-r--r-- | pym/portage/tests/resolver/ResolverPlayground.py | 10 | ||||
-rw-r--r-- | pym/portage/tests/resolver/test_autounmask.py | 24 |
3 files changed, 33 insertions, 3 deletions
diff --git a/pym/portage/package/ebuild/getmaskingstatus.py b/pym/portage/package/ebuild/getmaskingstatus.py index a7d3c333f..e46f7886d 100644 --- a/pym/portage/package/ebuild/getmaskingstatus.py +++ b/pym/portage/package/ebuild/getmaskingstatus.py @@ -77,7 +77,7 @@ def _getmaskingstatus(mycpv, settings, portdb, myrepo=None): # package.mask checking if settings._getMaskAtom(mycpv, metadata): - rValue.append(_MaskReason("package.mask", "package.mask")) + rValue.append(_MaskReason("package.mask", "package.mask", _UnmaskHint("p_mask", None))) # keywords checking eapi = metadata["EAPI"] diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py index c3540c939..f5bd77ff2 100644 --- a/pym/portage/tests/resolver/ResolverPlayground.py +++ b/pym/portage/tests/resolver/ResolverPlayground.py @@ -516,7 +516,7 @@ class ResolverPlaygroundTestCase(object): if self.ignore_mergelist_order and got is not None: got = set(got) expected = set(expected) - elif key == "unstable_keywords" and expected is not None: + elif key in ("unstable_keywords", "needed_p_mask_changes") and expected is not None: expected = set(expected) if got != expected: @@ -532,7 +532,7 @@ class ResolverPlaygroundResult(object): checks = ( "success", "mergelist", "use_changes", "license_changes", "unstable_keywords", "slot_collision_solutions", - "circular_dependency_solutions", + "circular_dependency_solutions", "needed_p_mask_changes", ) optional_checks = ( ) @@ -546,6 +546,7 @@ class ResolverPlaygroundResult(object): self.use_changes = None self.license_changes = None self.unstable_keywords = None + self.needed_p_mask_changes = None self.slot_collision_solutions = None self.circular_dependency_solutions = None @@ -572,6 +573,11 @@ class ResolverPlaygroundResult(object): for pkg in self.depgraph._dynamic_config._needed_unstable_keywords: self.unstable_keywords.add(pkg.cpv) + if self.depgraph._dynamic_config._needed_p_mask_changes: + self.needed_p_mask_changes = set() + for pkg in self.depgraph._dynamic_config._needed_p_mask_changes: + self.needed_p_mask_changes.add(pkg.cpv) + if self.depgraph._dynamic_config._needed_license_changes: self.license_changes = {} for pkg, missing_licenses in self.depgraph._dynamic_config._needed_license_changes.items(): diff --git a/pym/portage/tests/resolver/test_autounmask.py b/pym/portage/tests/resolver/test_autounmask.py index 027eb3326..62b152233 100644 --- a/pym/portage/tests/resolver/test_autounmask.py +++ b/pym/portage/tests/resolver/test_autounmask.py @@ -29,6 +29,10 @@ class AutounmaskTestCase(TestCase): "app-misc/W-2": { "KEYWORDS": "~x86" }, "app-misc/V-1": { "KEYWORDS": "~x86", "DEPEND": ">=app-misc/W-2"}, + #ebuilds to test mask and keyword changes + "app-text/A-1": {}, + "app-text/B-1": { "KEYWORDS": "~x86" }, + #ebuilds for mixed test for || dep handling "sci-libs/K-1": { "DEPEND": " || ( sci-libs/L[bar] || ( sci-libs/M sci-libs/P ) )", "EAPI": 2}, "sci-libs/K-2": { "DEPEND": " || ( sci-libs/L[bar] || ( sci-libs/P sci-libs/M ) )", "EAPI": 2}, @@ -203,6 +207,21 @@ class AutounmaskTestCase(TestCase): options = {"--autounmask": True}, use_changes = None, success = False), + + #Test mask and keyword changes. + ResolverPlaygroundTestCase( + ["app-text/A"], + options = {"--autounmask": True}, + success = False, + mergelist = ["app-text/A-1"], + needed_p_mask_changes = ["app-text/A-1"]), + ResolverPlaygroundTestCase( + ["app-text/B"], + options = {"--autounmask": True}, + success = False, + mergelist = ["app-text/B-1"], + unstable_keywords = ["app-text/B-1"], + needed_p_mask_changes = ["app-text/B-1"]), ) profile = { @@ -214,6 +233,11 @@ class AutounmaskTestCase(TestCase): ( "forced-flag", ), + "package.mask": + ( + "app-text/A", + "app-text/B", + ), } playground = ResolverPlayground(ebuilds=ebuilds, profile=profile) |