Allow specifying a table header for the value column in print_dict
If you can provide a customer header label for the property (first) column in the print_dict output you should also be able to provide a customer header label for the value (second) column. Partial-Bug: #1503841 Change-Id: Iaa96b80249389fdf12ffbaf84073debebca4b5a4
This commit is contained in:
parent
e5fdc54200
commit
075379920e
@ -186,14 +186,15 @@ def print_list(objs, fields, formatters=None, sortby_index=0,
|
|||||||
print(encodeutils.safe_encode(pt.get_string(**kwargs)))
|
print(encodeutils.safe_encode(pt.get_string(**kwargs)))
|
||||||
|
|
||||||
|
|
||||||
def print_dict(dct, dict_property="Property", wrap=0):
|
def print_dict(dct, dict_property="Property", wrap=0, dict_value='Value'):
|
||||||
"""Print a `dict` as a table of two columns.
|
"""Print a `dict` as a table of two columns.
|
||||||
|
|
||||||
:param dct: `dict` to print
|
:param dct: `dict` to print
|
||||||
:param dict_property: name of the first column
|
:param dict_property: name of the first column
|
||||||
:param wrap: wrapping for the second column
|
:param wrap: wrapping for the second column
|
||||||
|
:param dict_value: header label for the value (second) column
|
||||||
"""
|
"""
|
||||||
pt = prettytable.PrettyTable([dict_property, 'Value'])
|
pt = prettytable.PrettyTable([dict_property, dict_value])
|
||||||
pt.align = 'l'
|
pt.align = 'l'
|
||||||
for k, v in six.iteritems(dct):
|
for k, v in six.iteritems(dct):
|
||||||
# convert dict to str to check length
|
# convert dict to str to check length
|
||||||
|
@ -588,6 +588,24 @@ class PrintResultStringTestCase(test_base.BaseTestCase):
|
|||||||
| K | k |
|
| K | k |
|
||||||
| Key | Value |
|
| Key | Value |
|
||||||
+----------+-------+
|
+----------+-------+
|
||||||
|
'''
|
||||||
|
self.assertEqual(expected, out)
|
||||||
|
|
||||||
|
def test_print_dict_string_custom_headers(self):
|
||||||
|
orig = sys.stdout
|
||||||
|
sys.stdout = six.StringIO()
|
||||||
|
cliutils.print_dict({"K": "k", "Key": "Value"}, dict_property='Foo',
|
||||||
|
dict_value='Bar')
|
||||||
|
out = sys.stdout.getvalue()
|
||||||
|
sys.stdout.close()
|
||||||
|
sys.stdout = orig
|
||||||
|
expected = '''\
|
||||||
|
+-----+-------+
|
||||||
|
| Foo | Bar |
|
||||||
|
+-----+-------+
|
||||||
|
| K | k |
|
||||||
|
| Key | Value |
|
||||||
|
+-----+-------+
|
||||||
'''
|
'''
|
||||||
self.assertEqual(expected, out)
|
self.assertEqual(expected, out)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user