Fix Unicode error printing extra-specs
If type-key is set to unicode the command cinder extra-specs-list fails with the ERROR: 'ascii' codec can't encode characters in position. This patch fixes it. Change-Id: Id82bfbe8870351605f53c7ca029b9aa7e6089f6a Closes-Bug: #1568937
This commit is contained in:
		@@ -228,6 +228,10 @@ class PrintListTestCase(test_utils.TestCase):
 | 
			
		||||
+---+-----+
 | 
			
		||||
""", cso.read())
 | 
			
		||||
 | 
			
		||||
    def test_unicode_key_value_to_string(self):
 | 
			
		||||
        expected = {u'key': u'\u043f\u043f\u043f\u043f\u043f'}
 | 
			
		||||
        self.assertEqual(expected, utils.unicode_key_value_to_string(expected))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PrintDictTestCase(test_utils.TestCase):
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -182,8 +182,9 @@ def unicode_key_value_to_string(dictionary):
 | 
			
		||||
    """Recursively converts dictionary keys to strings."""
 | 
			
		||||
    if not isinstance(dictionary, dict):
 | 
			
		||||
        return dictionary
 | 
			
		||||
    return dict((str(k), str(unicode_key_value_to_string(v)))
 | 
			
		||||
        for k, v in dictionary.items())
 | 
			
		||||
    return dict((six.text_type(k),
 | 
			
		||||
                 six.text_type(unicode_key_value_to_string(v)))
 | 
			
		||||
                for k, v in dictionary.items())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def print_dict(d, property="Property", formatters=None):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user