Unordered dicts and lists causes variable results

The unordered dict and lists causes variable results.  The user
may see different results and tests can fail.  Might as well make
this more consistent.

Change-Id: I7045b40b44cbf3ee0f2ca79c6ea0d279b6d8cfe3
This commit is contained in:
Terry Howe 2014-09-04 08:06:03 -06:00 committed by Steve Martinelli
parent dc68d3f5cf
commit 514ecc6e96
2 changed files with 14 additions and 2 deletions
openstackclient
common
tests/common

@ -77,7 +77,7 @@ def format_dict(data):
"""
output = ""
for s in data:
for s in sorted(data):
output = output + s + "='" + six.text_type(data[s]) + "', "
return output[:-2]
@ -89,7 +89,7 @@ def format_list(data):
:rtype: a string formatted to a,b,c
"""
return ', '.join(data)
return ', '.join(sorted(data))
def get_item_properties(item, fields, mixed_case_fields=[], formatters={}):

@ -130,3 +130,15 @@ class TestFindResource(test_utils.TestCase):
str(result))
self.manager.get.assert_called_with(self.name)
self.manager.find.assert_called_with(name=self.name)
def test_format_dict(self):
expected = "a='b', c='d', e='f'"
self.assertEqual(expected,
utils.format_dict({'a': 'b', 'c': 'd', 'e': 'f'}))
self.assertEqual(expected,
utils.format_dict({'e': 'f', 'c': 'd', 'a': 'b'}))
def test_format_list(self):
expected = 'a, b, c'
self.assertEqual(expected, utils.format_list(['a', 'b', 'c']))
self.assertEqual(expected, utils.format_list(['c', 'b', 'a']))