summaryrefslogtreecommitdiffstats
path: root/pym/portage/tests/resolver/ResolverPlayground.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/tests/resolver/ResolverPlayground.py')
-rw-r--r--pym/portage/tests/resolver/ResolverPlayground.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/pym/portage/tests/resolver/ResolverPlayground.py b/pym/portage/tests/resolver/ResolverPlayground.py
index a9954fef1..3740f8314 100644
--- a/pym/portage/tests/resolver/ResolverPlayground.py
+++ b/pym/portage/tests/resolver/ResolverPlayground.py
@@ -14,6 +14,7 @@ from portage.package.ebuild.config import config
from portage.sets import load_default_config
from portage.versions import catsplit
+from _emerge.Blocker import Blocker
from _emerge.create_depgraph_params import create_depgraph_params
from _emerge.depgraph import backtrack_depgraph
from _emerge.RootConfig import RootConfig
@@ -183,19 +184,30 @@ class ResolverPlayground(object):
# Add a fake _test_ option that can be used for
# conditional test code.
myopts["_test_"] = True
-
+
portage.util.noiselimit = -2
myparams = create_depgraph_params(myopts, myaction)
success, mydepgraph, favorites = backtrack_depgraph(
self.settings, self.trees, myopts, myparams, myaction, myfiles, None)
+ result = ResolverPlaygroundResult(success, mydepgraph, favorites)
portage.util.noiselimit = 0
- if success:
- mergelist = [x.cpv for x in mydepgraph._dynamic_config._serialized_tasks_cache]
- return True, mergelist
- else:
- #TODO: Use mydepgraph.display_problems() to return a useful error message
- return False, None
+ return result
def cleanup(self):
shutil.rmtree(self.root)
+
+class ResolverPlaygroundResult(object):
+ def __init__(self, success, mydepgraph, favorites):
+ self.success = success
+ self.depgraph = mydepgraph
+ self.favorites = favorites
+ self.mergelist = None
+
+ if self.depgraph._dynamic_config._serialized_tasks_cache is not None:
+ self.mergelist = []
+ for x in self.depgraph._dynamic_config._serialized_tasks_cache:
+ if isinstance(x, Blocker):
+ self.mergelist.append(x.atom)
+ else:
+ self.mergelist.append(x.cpv)