diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-09-18 20:05:35 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-09-18 20:05:35 -0700 |
commit | 81e0f87b5c1da0ebc531d89846135b72743e71e0 (patch) | |
tree | 8b4dd6c84f2a6b7ddd47e8557c018db39eb20f38 | |
parent | 89664c0c4280372be5b593880c2ac5ccc695f688 (diff) | |
download | portage-81e0f87b5c1da0ebc531d89846135b72743e71e0.tar.gz portage-81e0f87b5c1da0ebc531d89846135b72743e71e0.tar.bz2 portage-81e0f87b5c1da0ebc531d89846135b72743e71e0.zip |
Test --prune with virtual slots.
-rw-r--r-- | pym/_emerge/actions.py | 3 | ||||
-rw-r--r-- | pym/portage/tests/resolver/ResolverPlayground.py | 10 | ||||
-rw-r--r-- | pym/portage/tests/resolver/test_virtual_slot.py | 7 |
3 files changed, 17 insertions, 3 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 82adca794..08f70df05 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -706,7 +706,8 @@ def calc_depclean(settings, trees, ldpath_mtimes, # that are also matched by argument atoms, but do not remove # them if they match the highest installed version. for pkg in vardb: - spinner.update() + if spinner is not None: + spinner.update() pkgs_for_cp = vardb.match_pkgs(pkg.cp) if not pkgs_for_cp or pkg not in pkgs_for_cp: raise AssertionError("package expected in matches: " + \ diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py index adf03d2b7..a73f63253 100644 --- a/pym/portage/tests/resolver/ResolverPlayground.py +++ b/pym/portage/tests/resolver/ResolverPlayground.py @@ -511,6 +511,12 @@ class ResolverPlayground(object): if self.debug: options["--debug"] = True + if action is None: + if options.get("--depclean"): + action = "depclean" + elif options.get("--prune"): + action = "prune" + global_noiselimit = portage.util.noiselimit global_emergelog_disable = _emerge.emergelog._disable try: @@ -519,10 +525,10 @@ class ResolverPlayground(object): portage.util.noiselimit = -2 _emerge.emergelog._disable = True - if options.get("--depclean"): + if action in ("depclean", "prune"): rval, cleanlist, ordered, req_pkg_count = \ calc_depclean(self.settings, self.trees, None, - options, "depclean", InternalPackageSet(initial_atoms=atoms, allow_wildcard=True), None) + options, action, InternalPackageSet(initial_atoms=atoms, allow_wildcard=True), None) result = ResolverPlaygroundDepcleanResult( \ atoms, rval, cleanlist, ordered, req_pkg_count) else: diff --git a/pym/portage/tests/resolver/test_virtual_slot.py b/pym/portage/tests/resolver/test_virtual_slot.py index 4ea66772e..1b19d774a 100644 --- a/pym/portage/tests/resolver/test_virtual_slot.py +++ b/pym/portage/tests/resolver/test_virtual_slot.py @@ -123,6 +123,13 @@ class VirtualSlotResolverTestCase(TestCase): options = {"--depclean" : True}, success = True, cleanlist = []), + + # Prune redundant lower slots, even if they are in world. + ResolverPlaygroundTestCase( + [], + options = {"--prune" : True}, + success = True, + cleanlist = ['virtual/jdk-1.6.0', 'dev-java/icedtea-6.1.10.3']), ) playground = ResolverPlayground( |