)]}'
{"test/functional/swift_test_client.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8fcc7689ea0d8e4e5518c06708210d8383c18da3","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            self.response \u003d self.request_with_retry(try_request)"},{"line_number":308,"context_line":"        except RequestError as e:"},{"line_number":309,"context_line":"            details \u003d \"{method} {path} headers: {headers} data: {data}\".format("},{"line_number":310,"context_line":"                method\u003dmethod, path\u003dpath, headers\u003dheaders, data\u003ddata)"},{"line_number":311,"context_line":"            raise RequestError(\u0027Unable to complete request: %s.\\n%s\u0027 % ("},{"line_number":312,"context_line":"                details, str(e)))"},{"line_number":313,"context_line":"        return self.response.status"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_e665dae2","line":310,"updated":"2019-02-06 17:39:52.000000000","message":"You really want f-strings, don\u0027t you :P","commit_id":"c6d213f826aee3b3888e50602ebe87fdbcaacffc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8fcc7689ea0d8e4e5518c06708210d8383c18da3","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        if self.response:"},{"line_number":343,"context_line":"            return self.response"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        raise RequestError(\u0027Attempts: %s, Failures: %s\u0027 % ("},{"line_number":346,"context_line":"            len(fail_messages), fail_messages))"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"    def put_start(self, path, hdrs\u003dNone, parms\u003dNone, cfg\u003dNone, chunked\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_03457070","line":345,"range":{"start_line":345,"start_character":14,"end_line":345,"end_character":26},"updated":"2019-02-06 17:39:52.000000000","message":"Should this be a RequestError, or a ResponseError?","commit_id":"c6d213f826aee3b3888e50602ebe87fdbcaacffc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8fcc7689ea0d8e4e5518c06708210d8383c18da3","unresolved":false,"context_lines":[{"line_number":1041,"context_line":""},{"line_number":1042,"context_line":"        def try_request():"},{"line_number":1043,"context_line":"            # rewind to be ready for another attempt"},{"line_number":1044,"context_line":"            data.seek(0)"},{"line_number":1045,"context_line":"            self.conn.put_start(self.path, hdrs\u003dheaders, parms\u003dparms, cfg\u003dcfg)"},{"line_number":1046,"context_line":""},{"line_number":1047,"context_line":"            transferred \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_e372ace3","line":1044,"updated":"2019-02-06 17:39:52.000000000","message":"nit: I think we can drop the seeks(0)s up at L1030 and L1037 now...","commit_id":"c6d213f826aee3b3888e50602ebe87fdbcaacffc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b8624b3ed9c6812182cb07921301cc0d758dedae","unresolved":false,"context_lines":[{"line_number":1057,"context_line":"        try:"},{"line_number":1058,"context_line":"            self.response \u003d self.conn.request_with_retry(try_request)"},{"line_number":1059,"context_line":"        except RequestError as e:"},{"line_number":1060,"context_line":"            raise ResponseError(self.conn.response, \u0027PUT\u0027,"},{"line_number":1061,"context_line":"                                self.conn.make_path(self.path), details\u003dstr(e))"},{"line_number":1062,"context_line":"        if not is_success(self.response.status):"},{"line_number":1063,"context_line":"            raise ResponseError(self.conn.response, \u0027PUT\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_1c4bd82a","line":1060,"range":{"start_line":1060,"start_character":32,"end_line":1060,"end_character":50},"updated":"2019-02-28 21:36:08.000000000","message":":-/\n\nIf this is a legit *Request*Error, there shouldn\u0027t *be* a response, should there? That\u0027d explain the\n\nERROR: testContainerSerializedInfo (test.functional.tests.TestAccountUTF8)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"/home/tburke/code/swift/test/functional/tests.py\", line 234, in testContainerSerializedInfo\n    file_item.write_random(bytes)\n  File \"/home/tburke/code/swift/test/functional/swift_test_client.py\", line 1101, in write_random\n    if not self.write(data, hdrs\u003dhdrs, parms\u003dparms, cfg\u003dcfg):\n  File \"/home/tburke/code/swift/test/functional/swift_test_client.py\", line 1076, in write\n    self.conn.make_path(self.path), details\u003dstr(e))\n  File \"/home/tburke/code/swift/test/functional/swift_test_client.py\", line 53, in __init__\n    self.status \u003d response.status\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027status\u0027\n\n\nI just saw...","commit_id":"c6d213f826aee3b3888e50602ebe87fdbcaacffc"}]}
