From 03e2e572a7617e0929e7fe7da8171a03595c9607 Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Sat, 9 Jul 2011 20:40:13 +0100 Subject: [PATCH] Also print command dependencies in '0install select' (and in GUI) --- tests/testinstall.py | 4 ++++ zeroinstall/0launch-gui/iface_browser.py | 13 ++++++++----- zeroinstall/cmd/select.py | 11 +++++------ 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/tests/testinstall.py b/tests/testinstall.py index 2b6033d..943e6d4 100755 --- a/tests/testinstall.py +++ b/tests/testinstall.py @@ -89,6 +89,10 @@ class TestInstall(BaseTest): assert 'Version: 1\n' in out assert '(not cached)' in out + out, err = self.run_0install(['select', 'runnable/RunExec.xml']) + assert not err, err + assert 'Runner' in out, out + def testDownload(self): out, err = self.run_0install(['download']) assert out.lower().startswith("usage:") diff --git a/zeroinstall/0launch-gui/iface_browser.py b/zeroinstall/0launch-gui/iface_browser.py index 703c85b..115c0cf 100644 --- a/zeroinstall/0launch-gui/iface_browser.py +++ b/zeroinstall/0launch-gui/iface_browser.py @@ -329,7 +329,7 @@ class InterfaceBrowser: sels = self.policy.solver.selections self.model.clear() - def add_node(parent, iface, command, essential): + def add_node(parent, iface, commands, essential): if iface in done: return done[iface] = True @@ -361,11 +361,14 @@ class InterfaceBrowser: self.model[iter][InterfaceBrowser.DOWNLOAD_SIZE] = utils.get_fetch_info(self.policy, impl) deps = sel.dependencies - if command is not None: - deps += sel.get_command(command).requires + for c in commands: + deps += sel.get_command(c).requires for child in deps: if isinstance(child, model.InterfaceDependency): - add_node(iter, iface_cache.get_interface(child.interface), child.command, child.importance == model.Dependency.Essential) + add_node(iter, + iface_cache.get_interface(child.interface), + child.get_required_commands(), + child.importance == model.Dependency.Essential) else: child_iter = self.model.append(parent) self.model[child_iter][InterfaceBrowser.INTERFACE_NAME] = '?' @@ -375,7 +378,7 @@ class InterfaceBrowser: else: self.model[iter][InterfaceBrowser.PROBLEM] = essential self.model[iter][InterfaceBrowser.VERSION] = _('(problem)') if essential else _('(none)') - add_node(None, self.root, sels.command, essential = True) + add_node(None, self.root, [sels.command], essential = True) self.tree_view.expand_all() def show_popup_menu(self, iface, bev): diff --git a/zeroinstall/cmd/select.py b/zeroinstall/cmd/select.py index ecc135c..d51830e 100644 --- a/zeroinstall/cmd/select.py +++ b/zeroinstall/cmd/select.py @@ -158,7 +158,7 @@ def show_xml(sels): def show_human(sels, stores): from zeroinstall import zerostore done = set() # detect cycles - def print_node(uri, command, indent): + def print_node(uri, commands, indent): if uri in done: return done.add(uri) impl = sels.selections.get(uri, None) @@ -177,13 +177,12 @@ def show_human(sels, stores): indent += " " deps = impl.dependencies - if command is not None: - deps += impl.get_command(command).requires + for c in commands: + deps += impl.get_command(c).requires for child in deps: - if isinstance(child, model.InterfaceDependency): - print_node(child.interface, child.command, indent) + print_node(child.interface, child.get_required_commands(), indent) else: print indent + " No selected version" - print_node(sels.interface, sels.command, "") + print_node(sels.interface, [sels.command], "") -- 2.11.4.GIT