diff options
author | Abijitha Nadagouda <abijitha.nadagouda@tatacommunications.com> | 2018-02-02 10:26:23 +0530 |
---|---|---|
committer | Abijitha Nadagouda <abijitha.nadagouda@tatacommunications.com> | 2018-02-02 10:36:27 +0530 |
commit | 195add500bac78637f94a008feee986b7800968d (patch) | |
tree | 8f75833908928c7dd44185f3020ac4a53b2ab75a /glanceclient/tests | |
parent | 4ea9d2c4933bbe2825900eb33c68430b3b3977d3 (diff) | |
download | python-glanceclient-195add500bac78637f94a008feee986b7800968d.tar.gz |
Removes unicode 'u' response from "glance image-tag-update"
"glance image-tag-update" command returns unicoded response
for lists. Therefore it requires print_list method from util
class to handle such case. Added unicode_key_value_to_string()
method to remove extra 'u' from lists and dictionaries. This
fix is inspired from cinderclient's implementation.
Change-Id: I16a04e8d34f7629f72fe389456001ca1db9335ea
Closes-bug: #1534046
Diffstat (limited to 'glanceclient/tests')
-rw-r--r-- | glanceclient/tests/unit/test_utils.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/glanceclient/tests/unit/test_utils.py b/glanceclient/tests/unit/test_utils.py index cd87e21..a63ee80 100644 --- a/glanceclient/tests/unit/test_utils.py +++ b/glanceclient/tests/unit/test_utils.py @@ -115,6 +115,42 @@ class TestUtils(testtools.TestCase): ''', output_dict.getvalue()) + def test_print_list_with_list_no_unicode(self): + class Struct(object): + def __init__(self, **entries): + self.__dict__.update(entries) + + # test for removing 'u' from lists in print_list output + columns = ['ID', 'Tags'] + images = [Struct(**{'id': 'b8e1c57e-907a-4239-aed8-0df8e54b8d2d', + 'tags': [u'Name1', u'Tag_123', u'veeeery long']})] + saved_stdout = sys.stdout + try: + sys.stdout = output_list = six.StringIO() + utils.print_list(images, columns) + + finally: + sys.stdout = saved_stdout + + self.assertEqual('''\ ++--------------------------------------+--------------------------------------+ +| ID | Tags | ++--------------------------------------+--------------------------------------+ +| b8e1c57e-907a-4239-aed8-0df8e54b8d2d | ['Name1', 'Tag_123', 'veeeery long'] | ++--------------------------------------+--------------------------------------+ +''', + output_list.getvalue()) + + def test_unicode_key_value_to_string(self): + src = {u'key': u'\u70fd\u7231\u5a77'} + expected = {'key': '\xe7\x83\xbd\xe7\x88\xb1\xe5\xa9\xb7'} + if six.PY2: + self.assertEqual(expected, utils.unicode_key_value_to_string(src)) + else: + # u'xxxx' in PY3 is str, we will not get extra 'u' from cli + # output in PY3 + self.assertEqual(src, utils.unicode_key_value_to_string(src)) + def test_schema_args_with_list_types(self): # NOTE(flaper87): Regression for bug # https://bugs.launchpad.net/python-glanceclient/+bug/1401032 |