diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-02-25 13:10:56 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-02-25 13:10:56 +0000 |
commit | 771383145b02f2a4b3ec546e3727f9b90fed22a8 (patch) | |
tree | 8605849f16b0007e8d2cc958577719522ba7633b | |
parent | 731707f06da899fa8fb2d521e35f850a2e1652ab (diff) | |
parent | cac21e3cff323d828b69b2280151b9c505bdaeda (diff) | |
download | python-swiftclient-771383145b02f2a4b3ec546e3727f9b90fed22a8.tar.gz |
Merge "Fix crash when stat'ing objects with non-ascii names"
-rw-r--r-- | swiftclient/multithreading.py | 4 | ||||
-rw-r--r-- | tests/unit/test_multithreading.py | 10 |
2 files changed, 10 insertions, 4 deletions
diff --git a/swiftclient/multithreading.py b/swiftclient/multithreading.py index 7ae82fa..32d8ffa 100644 --- a/swiftclient/multithreading.py +++ b/swiftclient/multithreading.py @@ -84,13 +84,11 @@ class OutputManager(object): self.print_pool.submit(self._print, msg) def print_items(self, items, offset=DEFAULT_OFFSET, skip_missing=False): - lines = [] template = '%%%ds: %%s' % offset for k, v in items: if skip_missing and not v: continue - lines.append((template % (k, v)).rstrip()) - self.print_msg('\n'.join(lines)) + self.print_msg((template % (k, v)).rstrip()) def error(self, msg, *fmt_args): if fmt_args: diff --git a/tests/unit/test_multithreading.py b/tests/unit/test_multithreading.py index 5f85b1c..6597793 100644 --- a/tests/unit/test_multithreading.py +++ b/tests/unit/test_multithreading.py @@ -205,6 +205,11 @@ class TestOutputManager(testtools.TestCase): thread_manager.print_raw( u'some raw bytes: \u062A\u062A'.encode('utf-8')) + thread_manager.print_items([ + ('key', u'value'), + ('object', 'O\xcc\x88bject') + ]) + # Now we have a thread for error printing and a thread for # normal print messages self.assertEqual(starting_thread_count + 2, @@ -227,7 +232,10 @@ class TestOutputManager(testtools.TestCase): self.assertEqual(''.join([ 'one-argument\n', 'one fish, 88 fish\n', - 'some\n', 'where\n', over_the, raw_bytes + 'some\n', 'where\n', + over_the, raw_bytes, + ' key: value\n', + ' object: O\xcc\x88bject\n' ]), out_stream.getvalue()) first_item = u'I have 99 problems, but a \u062A\u062A is not one\n' |