From 81e0f87b5c1da0ebc531d89846135b72743e71e0 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 18 Sep 2011 20:05:35 -0700 Subject: Test --prune with virtual slots. --- pym/_emerge/actions.py | 3 ++- pym/portage/tests/resolver/ResolverPlayground.py | 10 ++++++++-- 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( -- cgit v1.2.3-1-g7c22