tools/qvm-ls: various fixes

1. Fix displaying non-str values - convert them to string.
2. Always sort VMs.
3. Add app argument to main - required for tests.
This commit is contained in:
Marek Marczykowski-Górecki 2017-03-12 00:44:33 +01:00
parent 9262363569
commit e2481b19a2
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -109,11 +109,8 @@ class Column(object):
if ret is None:
return None
if isinstance(ret, int):
return str(ret)
return ret
def __repr__(self):
return '{}(head={!r})'.format(self.__class__.__name__,
self.ls_head)
@ -405,11 +402,11 @@ class Table(object):
table_data = []
if not self.raw_data:
table_data.append(self.get_head())
for vm in self.app.domains:
for vm in sorted(self.app.domains):
table_data.append(self.get_row(vm))
qubesmgmt.tools.print_table(table_data, stream=stream)
else:
for vm in self.app.domains:
for vm in sorted(self.app.domains):
stream.write('|'.join(self.get_row(vm)) + '\n')
@ -524,16 +521,17 @@ def get_parser():
return parser
def main(args=None):
def main(args=None, app=None):
'''Main routine of :program:`qvm-ls`.
:param list args: Optional arguments to override those delivered from \
command line.
:param app: Operate on given app object instead of instantiating new one.
'''
parser = get_parser()
try:
args = parser.parse_args(args)
args = parser.parse_args(args, app=app)
except qubesmgmt.exc.QubesException as e:
parser.print_error(str(e))
return 1