)]}'
{"novaclient/tests/unit/test_utils.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"5488c15dcba28b718b2610a1a26f152efc6e6fcf","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    @mock.patch(\u0027sys.stdout\u0027, six.StringIO())"},{"line_number":285,"context_line":"    def test_print_unicode_list(self):"},{"line_number":286,"context_line":"        dict \u003d {\u0027k\u0027: \u0027测试\u0027}"},{"line_number":287,"context_line":"        utils.print_dict(dict)"},{"line_number":288,"context_line":"        self.assertEqual(\u0027+----------+-------+\\n\u0027"},{"line_number":289,"context_line":"                         \u0027| Property | Value |\\n\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_735816fb","line":286,"updated":"2015-11-23 17:50:24.000000000","message":"I think it would be better to avoid having to specify the encoding above by using a reasonable unicode escape here.  I recently used u\u0027\\u2026\u0027 for unicode transparency testing.","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"de6e6d95c5b28bf6ae594ba9ea7ea368f60581a7","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    @mock.patch(\u0027sys.stdout\u0027, six.StringIO())"},{"line_number":285,"context_line":"    def test_print_unicode_list(self):"},{"line_number":286,"context_line":"        dict \u003d {\u0027k\u0027: \u0027测试\u0027}"},{"line_number":287,"context_line":"        utils.print_dict(dict)"},{"line_number":288,"context_line":"        self.assertEqual(\u0027+----------+-------+\\n\u0027"},{"line_number":289,"context_line":"                         \u0027| Property | Value |\\n\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_0bcb9254","line":286,"in_reply_to":"ba8a016a_735816fb","updated":"2015-11-23 18:48:17.000000000","message":"ok, I can change it, thanks","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"3c8877492668b03ad635243976c807497c5081d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_1f3bc8d2","line":1,"updated":"2015-11-23 19:59:44.000000000","message":"You should be able to drop the coding now…","commit_id":"8ed5968f46604f8ccb92ef286add05373958e000"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9768914d2992d8b5fef4e5b64e90d2c755d8f35a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_958f9722","line":1,"in_reply_to":"ba8a016a_1f3bc8d2","updated":"2015-11-23 21:06:12.000000000","message":"yes, that\u0027s right","commit_id":"8ed5968f46604f8ccb92ef286add05373958e000"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"3c8877492668b03ad635243976c807497c5081d5","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        self.assertEqual(\u0027+----------+-------+\\n\u0027"},{"line_number":289,"context_line":"                         \u0027| Property | Value |\\n\u0027"},{"line_number":290,"context_line":"                         \u0027+----------+-------+\\n\u0027"},{"line_number":291,"context_line":"                         \u0027| k        | \\xe2\\x80\\xa6     |\\n\u0027"},{"line_number":292,"context_line":"                         \u0027+----------+-------+\\n\u0027,"},{"line_number":293,"context_line":"                         sys.stdout.getvalue())"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_df4b0058","line":291,"updated":"2015-11-23 19:59:44.000000000","message":"These lines are text, now; would this value really be emitted as UTF-8?","commit_id":"8ed5968f46604f8ccb92ef286add05373958e000"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9768914d2992d8b5fef4e5b64e90d2c755d8f35a","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        self.assertEqual(\u0027+----------+-------+\\n\u0027"},{"line_number":289,"context_line":"                         \u0027| Property | Value |\\n\u0027"},{"line_number":290,"context_line":"                         \u0027+----------+-------+\\n\u0027"},{"line_number":291,"context_line":"                         \u0027| k        | \\xe2\\x80\\xa6     |\\n\u0027"},{"line_number":292,"context_line":"                         \u0027+----------+-------+\\n\u0027,"},{"line_number":293,"context_line":"                         sys.stdout.getvalue())"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_35c6eb49","line":291,"in_reply_to":"ba8a016a_df4b0058","updated":"2015-11-23 21:06:12.000000000","message":"yes, I think so because we can print the value now..","commit_id":"8ed5968f46604f8ccb92ef286add05373958e000"}],"novaclient/utils.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"5488c15dcba28b718b2610a1a26f152efc6e6fcf","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                if data is None:"},{"line_number":99,"context_line":"                    data \u003d \u0027-\u0027"},{"line_number":100,"context_line":"                # \u0027\\r\u0027 would break the table, so remove it."},{"line_number":101,"context_line":"                data \u003d unicode(data).replace(\"\\r\", \"\")"},{"line_number":102,"context_line":"                row.append(data)"},{"line_number":103,"context_line":"        pt.add_row(row)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_73dd7641","line":101,"updated":"2015-11-23 17:50:24.000000000","message":"\u0027unicode\u0027 does not exist in Python 3.  This should be six.text_type().  However, be aware there are at least two other reviews touching this same line, each apparently trying to resolve the same bug.  I think maybe using encodeutils.safe_encode() might be the best solution.","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c7d35b20b2930615451a99f38affd29663acc061","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                if data is None:"},{"line_number":99,"context_line":"                    data \u003d \u0027-\u0027"},{"line_number":100,"context_line":"                # \u0027\\r\u0027 would break the table, so remove it."},{"line_number":101,"context_line":"                data \u003d unicode(data).replace(\"\\r\", \"\")"},{"line_number":102,"context_line":"                row.append(data)"},{"line_number":103,"context_line":"        pt.add_row(row)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_a198651c","line":101,"in_reply_to":"ba8a016a_4141790a","updated":"2015-11-23 19:31:40.000000000","message":"https://github.com/openstack/oslo.utils/blob/master/oslo_utils/encodeutils.py#L32\n\nwill not allow some case to pass, so encodeutils.safe_encode()\nmight not be a good choice unless we change either encodeutils.safe_encode() function itself or test cases...\nso how about six.text_type()?","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"293de754435f8568490e53f8e89d231e5bd49c8d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                if data is None:"},{"line_number":99,"context_line":"                    data \u003d \u0027-\u0027"},{"line_number":100,"context_line":"                # \u0027\\r\u0027 would break the table, so remove it."},{"line_number":101,"context_line":"                data \u003d unicode(data).replace(\"\\r\", \"\")"},{"line_number":102,"context_line":"                row.append(data)"},{"line_number":103,"context_line":"        pt.add_row(row)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_cec4b841","line":101,"in_reply_to":"ba8a016a_4bb0badd","updated":"2015-11-23 19:09:31.000000000","message":"Yep, that\u0027s exactly what I\u0027m saying :)  And unfortunately, none of them are quite ready to go in, IMO…","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"de6e6d95c5b28bf6ae594ba9ea7ea368f60581a7","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                if data is None:"},{"line_number":99,"context_line":"                    data \u003d \u0027-\u0027"},{"line_number":100,"context_line":"                # \u0027\\r\u0027 would break the table, so remove it."},{"line_number":101,"context_line":"                data \u003d unicode(data).replace(\"\\r\", \"\")"},{"line_number":102,"context_line":"                row.append(data)"},{"line_number":103,"context_line":"        pt.add_row(row)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_4bb0badd","line":101,"in_reply_to":"ba8a016a_73dd7641","updated":"2015-11-23 18:48:17.000000000","message":"ok, I can change this , are you suggesting that some other patches trying to fix this? Then maybe we don\u0027t need duplicate effort here..","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"37177bea6a264fd1be6a7efa02b88f8768c42853","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                if data is None:"},{"line_number":99,"context_line":"                    data \u003d \u0027-\u0027"},{"line_number":100,"context_line":"                # \u0027\\r\u0027 would break the table, so remove it."},{"line_number":101,"context_line":"                data \u003d unicode(data).replace(\"\\r\", \"\")"},{"line_number":102,"context_line":"                row.append(data)"},{"line_number":103,"context_line":"        pt.add_row(row)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_4141790a","line":101,"in_reply_to":"ba8a016a_cec4b841","updated":"2015-11-23 19:23:20.000000000","message":"ok, let me change this and see whether it can be ready :)","commit_id":"dfe09f53e4f8e28658f7ac8812e3e11fb4964369"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"41e6b3e575e6602b96ce13c259dc64140afa484f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # convert dict to str to check length"},{"line_number":162,"context_line":"        if isinstance(v, (dict, list)):"},{"line_number":163,"context_line":"            v \u003d jsonutils.dumps(v)"},{"line_number":164,"context_line":"        if wrap \u003e 0:"},{"line_number":165,"context_line":"            v \u003d textwrap.fill(str(v), wrap)"},{"line_number":166,"context_line":"        # if value has a newline, add in multiple rows"},{"line_number":167,"context_line":"        # e.g. fault with stacktrace"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_243d63bb","line":164,"updated":"2015-11-23 19:37:10.000000000","message":"Should probably also handle this one.","commit_id":"8ed5968f46604f8ccb92ef286add05373958e000"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"1a7207017eea4593de9a1a363a89c36425d3b79f","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # convert dict to str to check length"},{"line_number":162,"context_line":"        if isinstance(v, (dict, list)):"},{"line_number":163,"context_line":"            v \u003d jsonutils.dumps(v)"},{"line_number":164,"context_line":"        if wrap \u003e 0:"},{"line_number":165,"context_line":"            v \u003d textwrap.fill(str(v), wrap)"},{"line_number":166,"context_line":"        # if value has a newline, add in multiple rows"},{"line_number":167,"context_line":"        # e.g. fault with stacktrace"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_9f4d7874","line":164,"in_reply_to":"ba8a016a_243d63bb","updated":"2015-11-23 19:58:45.000000000","message":"ok, updated it, thanks","commit_id":"8ed5968f46604f8ccb92ef286add05373958e000"}]}
