)]}'
{"tempest/api/object_storage/test_container_services.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"08009f4fe3ce4a47a7e35dad3e84f5d716296209","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        resp, object_list \u003d self.container_client.list_container_contents("},{"line_number":134,"context_line":"            container_name)"},{"line_number":135,"context_line":"        self.assertHeaders(resp, \u0027Container\u0027, \u0027GET\u0027)"},{"line_number":136,"context_line":"        self.assertEqual([object_name], object_list)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @test.idempotent_id(\u00274646ac2d-9bfb-4c7d-a3c5-0f527402b3df\u0027)"},{"line_number":139,"context_line":"    def test_list_container_contents_with_no_object(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a3905b3_fe6a7619","line":136,"range":{"start_line":136,"start_character":25,"end_line":136,"end_character":52},"updated":"2017-01-19 22:12:05.000000000","message":"oh, this way seems smart. Thanks","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"}],"tempest/api/object_storage/test_object_version.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"69251bb590adb5d08b31b2e1e28ebdefcdec6329","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # delete object version 2"},{"line_number":83,"context_line":"        resp, _ \u003d self.object_client.delete_object(base_container_name,"},{"line_number":84,"context_line":"                                                   object_name)"},{"line_number":85,"context_line":"        self.assertContainer(base_container_name, \u00271\u0027, \u00271024\u0027,"},{"line_number":86,"context_line":"                             vers_container_name)"},{"line_number":87,"context_line":"        resp, body \u003d self.object_client.get_object(base_container_name,"},{"line_number":88,"context_line":"                                                   object_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_32b60f8b","line":85,"range":{"start_line":85,"start_character":56,"end_line":85,"end_character":60},"updated":"2017-01-13 12:17:22.000000000","message":"NIT: This should probably be a function that calculates the size of the random input data.","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b2435e872011a34f301b51ff15a79641b96cc5d0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # delete object version 2"},{"line_number":83,"context_line":"        resp, _ \u003d self.object_client.delete_object(base_container_name,"},{"line_number":84,"context_line":"                                                   object_name)"},{"line_number":85,"context_line":"        self.assertContainer(base_container_name, \u00271\u0027, \u00271024\u0027,"},{"line_number":86,"context_line":"                             vers_container_name)"},{"line_number":87,"context_line":"        resp, body \u003d self.object_client.get_object(base_container_name,"},{"line_number":88,"context_line":"                                                   object_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_146e2e2f","line":85,"range":{"start_line":85,"start_character":56,"end_line":85,"end_character":60},"in_reply_to":"7a3c09a3_32b60f8b","updated":"2017-01-15 19:03:59.000000000","message":"Yep but as the original implemntation used hard coded value for size, I kept the same way. But that not optimal I agree. Maybe worth a follow up patch.","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"}],"tempest/lib/common/http.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"69251bb590adb5d08b31b2e1e28ebdefcdec6329","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        class Response(dict):"},{"line_number":41,"context_line":"            def __init__(self, info):"},{"line_number":42,"context_line":"                for key, value in info.getheaders().items():"},{"line_number":43,"context_line":"                    # We assume HTTP header name to be string, not random"},{"line_number":44,"context_line":"                    # bytes, thus ensure we have string keys."},{"line_number":45,"context_line":"                    self[six.u(key).lower()] \u003d value"},{"line_number":46,"context_line":"                self.status \u003d info.status"},{"line_number":47,"context_line":"                self[\u0027status\u0027] \u003d str(self.status)"},{"line_number":48,"context_line":"                self.reason \u003d info.reason"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_92d8a3f1","line":45,"range":{"start_line":43,"start_character":0,"end_line":45,"end_character":52},"updated":"2017-01-13 12:17:22.000000000","message":"NIT: this is kind of disconnected from the topic of this patch","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b2435e872011a34f301b51ff15a79641b96cc5d0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        class Response(dict):"},{"line_number":41,"context_line":"            def __init__(self, info):"},{"line_number":42,"context_line":"                for key, value in info.getheaders().items():"},{"line_number":43,"context_line":"                    # We assume HTTP header name to be string, not random"},{"line_number":44,"context_line":"                    # bytes, thus ensure we have string keys."},{"line_number":45,"context_line":"                    self[six.u(key).lower()] \u003d value"},{"line_number":46,"context_line":"                self.status \u003d info.status"},{"line_number":47,"context_line":"                self[\u0027status\u0027] \u003d str(self.status)"},{"line_number":48,"context_line":"                self.reason \u003d info.reason"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_544a76c6","line":45,"range":{"start_line":43,"start_character":0,"end_line":45,"end_character":52},"in_reply_to":"7a3c09a3_92d8a3f1","updated":"2017-01-15 19:03:59.000000000","message":"For some reason, I remember that without this, some tests failed.","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"}],"tempest/services/object_storage/container_client.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"69251bb590adb5d08b31b2e1e28ebdefcdec6329","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # Else the content-type is plain/text"},{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            body \u003d ["},{"line_number":146,"context_line":"                obj_name for obj_name in body.decode().split(\u0027\\n\u0027) if obj_name"},{"line_number":147,"context_line":"            ]"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        self.expected_success([200, 204], resp.status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_f27807fb","line":146,"updated":"2017-01-13 12:17:22.000000000","message":"NIT: I see the need for decode, however I\u0027m not sure splitting the text into a python list is in scope for this patch.","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"b2435e872011a34f301b51ff15a79641b96cc5d0","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        # Else the content-type is plain/text"},{"line_number":144,"context_line":"        else:"},{"line_number":145,"context_line":"            body \u003d ["},{"line_number":146,"context_line":"                obj_name for obj_name in body.decode().split(\u0027\\n\u0027) if obj_name"},{"line_number":147,"context_line":"            ]"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        self.expected_success([200, 204], resp.status)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a3c09a3_343b2a3a","line":146,"in_reply_to":"7a3c09a3_f27807fb","updated":"2017-01-15 19:03:59.000000000","message":"Well, if we specify either content-type xml or content-type json, this returns a list so I figured it\u0027s better to always return a list. Also if we don\u0027t do it here, we have to do it in the test cases, which is ugly.","commit_id":"b84f2d409e0535707ab4a61b1585892fa1e7df88"}]}
