)]}'
{"swift/common/request_helpers.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"ea5f451a523d97034c01c3ddafc8986c23d03676","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":517,"context_line":"        not a swob.Response."},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    from swift.common.swob import is_chunked"},{"line_number":520,"context_line":"    chunked \u003d is_chunked(dict(response.getheaders()))"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    if response.status \u003d\u003d 200:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7af24918_7f30f2e8","line":519,"updated":"2016-03-02 13:48:28.000000000","message":"Don\u0027t use local import, here!","commit_id":"b90f4c45c4a53b73eacc3c00951fb826dad1baa6"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9a2e68e40600268ddec1c9031c2a45b4b993bf8f","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":517,"context_line":"        not a swob.Response."},{"line_number":518,"context_line":"    \"\"\""},{"line_number":519,"context_line":"    from swift.common.swob import is_chunked"},{"line_number":520,"context_line":"    chunked \u003d is_chunked(dict(response.getheaders()))"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    if response.status \u003d\u003d 200:"}],"source_content_type":"text/x-python","patch_set":18,"id":"7af24918_10e8bbb3","line":519,"in_reply_to":"7af24918_7f30f2e8","updated":"2016-03-02 14:33:25.000000000","message":"Sorry for my missing. Nice catch!","commit_id":"b90f4c45c4a53b73eacc3c00951fb826dad1baa6"}],"swift/common/utils.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"f352a08f5ceb8702731026e7b402b6f4888261d1","unresolved":false,"context_lines":[{"line_number":3646,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3647,"context_line":""},{"line_number":3648,"context_line":"        te \u003d response.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_02d7e5bf","line":3649,"updated":"2015-12-11 09:03:18.000000000","message":"Current code looks like to allow invalid transfer-encoding format, it *may* worse even if we need transfer-encoding: chunked for responses.\n\nSeeing the validation for incomming request[1], RFC2616 seems to force the \"chunked\" for transfer encoding be at last of the header string. TBH, I don\u0027t know httplib.Response has the capability for the validation but I\u0027d like to add some docs for the note (or add a validation somewhere), right now.\n\n1: https://github.com/openstack/swift/blob/master/swift/common/swob.py#L1064-L1078","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"25d596870c93421b8a6da38abf2a50a1c7e6bf33","unresolved":false,"context_lines":[{"line_number":3646,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3647,"context_line":""},{"line_number":3648,"context_line":"        te \u003d response.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_41cc04bb","line":3649,"in_reply_to":"7a740942_02d7e5bf","updated":"2015-12-11 10:49:18.000000000","message":"This is the internal checking, so It is not so urgent thing to add some validations here.\nBut I agree with you about adding some note (espessialy for people who develop their own middlewares) about this.","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e240d7523ee307d298e0283e4e140cd6e5213f6f","unresolved":false,"context_lines":[{"line_number":3646,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3647,"context_line":""},{"line_number":3648,"context_line":"        te \u003d response.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_96a928e2","line":3649,"in_reply_to":"7a740942_41cc04bb","updated":"2016-01-18 06:17:31.000000000","message":"Done. I fixed this as Kota showed in his comment.","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"f352a08f5ceb8702731026e7b402b6f4888261d1","unresolved":false,"context_lines":[{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":"        # Single \"range\" that\u0027s the whole object"},{"line_number":3654,"context_line":"        content_length \u003d int(response.getheader(\u0027Content-Length\u0027))"},{"line_number":3655,"context_line":"        return iter([(0, content_length - 1, content_length,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_387014dc","line":3652,"updated":"2015-12-11 09:03:18.000000000","message":"None values for start_bytes, end_bytes, content-length seem to break Range requests.\n\nI played with [1] but it failed as 500 :(\n\n1: http://paste.openstack.org/show/481592/","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"25d596870c93421b8a6da38abf2a50a1c7e6bf33","unresolved":false,"context_lines":[{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":"        # Single \"range\" that\u0027s the whole object"},{"line_number":3654,"context_line":"        content_length \u003d int(response.getheader(\u0027Content-Length\u0027))"},{"line_number":3655,"context_line":"        return iter([(0, content_length - 1, content_length,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_be29499d","line":3652,"in_reply_to":"7a740942_387014dc","updated":"2015-12-11 10:49:18.000000000","message":"Doen. I also added that test code to make sure that error is fixed.","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"9b52c7b59a3fe3780fcc9635daf969fd38c6487b","unresolved":false,"context_lines":[{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":"        # Single \"range\" that\u0027s the whole object"},{"line_number":3654,"context_line":"        content_length \u003d int(response.getheader(\u0027Content-Length\u0027))"},{"line_number":3655,"context_line":"        return iter([(0, content_length - 1, content_length,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_a45296dc","line":3652,"in_reply_to":"7a740942_387014dc","updated":"2015-12-11 11:05:01.000000000","message":"I rethought about this, and now think this error is not caused by this patch.\nPlease check the code I uploaded. (I think we have to add Content-Range header)","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e240d7523ee307d298e0283e4e140cd6e5213f6f","unresolved":false,"context_lines":[{"line_number":3649,"context_line":"        if te and \u0027chunked\u0027 in te:"},{"line_number":3650,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3651,"context_line":"                          response)])"},{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":"        # Single \"range\" that\u0027s the whole object"},{"line_number":3654,"context_line":"        content_length \u003d int(response.getheader(\u0027Content-Length\u0027))"},{"line_number":3655,"context_line":"        return iter([(0, content_length - 1, content_length,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_96804848","line":3652,"in_reply_to":"7a740942_a45296dc","updated":"2016-01-18 06:17:31.000000000","message":"Done. This problem was not caused by this change, and caused by the wrong setup for testing.","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"62ab1496b154f2bbd53427534fbae44e0b6957e4","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    def is_chunked(resp):"},{"line_number":3647,"context_line":"        te \u003d resp.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3648,"context_line":"        return (te and \u0027chunked\u0027 in te)"},{"line_number":3649,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_18f095fd","line":3646,"range":{"start_line":3646,"start_character":4,"end_line":3646,"end_character":25},"updated":"2016-01-14 11:18:46.000000000","message":"make sure that proxy server can handle disconnection from storage server before it recieves the whole response body\n\n(The comment is not for this statement, but I\u0027ll attach here to keep it in our mind)","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c29f1759705f75b56efbde3989a3360e9b10d77a","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    def is_chunked(resp):"},{"line_number":3647,"context_line":"        te \u003d resp.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3648,"context_line":"        return (te and \u0027chunked\u0027 in te)"},{"line_number":3649,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a68dd71_be2ac47c","line":3646,"range":{"start_line":3646,"start_character":4,"end_line":3646,"end_character":25},"in_reply_to":"da6ed579_18f095fd","updated":"2016-01-22 03:26:12.000000000","message":"Done","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"62ab1496b154f2bbd53427534fbae44e0b6957e4","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    def is_chunked(resp):"},{"line_number":3647,"context_line":"        te \u003d resp.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3648,"context_line":"        return (te and \u0027chunked\u0027 in te)"},{"line_number":3649,"context_line":""},{"line_number":3650,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3651,"context_line":"        if is_chunked(response):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_950bf029","line":3648,"range":{"start_line":3647,"start_character":0,"end_line":3648,"end_character":39},"updated":"2016-01-14 11:18:46.000000000","message":"Improve parsing logic about Transfer-Encoding header, based on the Kota\u0027s comment for patch 1.\n(I\u0027m sorry for missing that)","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"56a9943dc257ada84f79e2d3c3d17b510e70c3fa","unresolved":false,"context_lines":[{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    def is_chunked(resp):"},{"line_number":3647,"context_line":"        te \u003d resp.getheader(\u0027transfer-encoding\u0027)"},{"line_number":3648,"context_line":"        return (te and \u0027chunked\u0027 in te)"},{"line_number":3649,"context_line":""},{"line_number":3650,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3651,"context_line":"        if is_chunked(response):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_d63b209b","line":3648,"range":{"start_line":3647,"start_character":0,"end_line":3648,"end_character":39},"in_reply_to":"da6ed579_950bf029","updated":"2016-01-18 06:19:03.000000000","message":"Done","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"62ab1496b154f2bbd53427534fbae44e0b6957e4","unresolved":false,"context_lines":[{"line_number":3649,"context_line":""},{"line_number":3650,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3651,"context_line":"        if is_chunked(response):"},{"line_number":3652,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3653,"context_line":"                          response)])"},{"line_number":3654,"context_line":""},{"line_number":3655,"context_line":"        # Single \"range\" that\u0027s the whole object"},{"line_number":3656,"context_line":"        content_length \u003d int(response.getheader(\u0027Content-Length\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_5501f804","line":3653,"range":{"start_line":3652,"start_character":12,"end_line":3653,"end_character":37},"updated":"2016-01-14 11:18:46.000000000","message":"start/end/length should not be set as None, because they will be used when proxy-server fastfowards requests to another storage server.","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b5740d50c1db782cc32f20b98977ebed52d0e412","unresolved":false,"context_lines":[{"line_number":3649,"context_line":""},{"line_number":3650,"context_line":"    if response.status \u003d\u003d 200:"},{"line_number":3651,"context_line":"        if is_chunked(response):"},{"line_number":3652,"context_line":"            return iter([(None, None, None, response.getheaders(),"},{"line_number":3653,"context_line":"                          response)])"},{"line_number":3654,"context_line":""},{"line_number":3655,"context_line":"        # Single \"range\" that\u0027s the whole object"},{"line_number":3656,"context_line":"        content_length \u003d int(response.getheader(\u0027Content-Length\u0027))"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_02740efb","line":3653,"range":{"start_line":3652,"start_character":12,"end_line":3653,"end_character":37},"in_reply_to":"da6ed579_5501f804","updated":"2016-01-18 08:46:07.000000000","message":"Done. I found only start is used in normal case. and the other items(end,length) are used in only multi-part range case. So here I should fix this to return 0 for start.","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"85854b6a2ab062b3a6f847a40f0066bf85fc1a2f","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    from swift.common.swob import is_chunked"},{"line_number":3647,"context_line":"    chunked \u003d is_chunked(dict(response.getheaders()))"},{"line_number":3648,"context_line":""},{"line_number":3649,"context_line":"    if response.status \u003d\u003d 200:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_f462b515","line":3646,"updated":"2016-03-01 14:06:29.000000000","message":"Please move http_response_to_document_iters to swift.common.request_helpers instead of doing an inline import.\n\nrequest_helpers is made for this; it holds utility functions that need code from swob.","commit_id":"fcbcfacf6eb6b367847ba6fa8b7c202455bd8d8e"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"e523e214cd706e69564ab734d012be6f4171c41a","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    from swift.common.swob import is_chunked"},{"line_number":3647,"context_line":"    chunked \u003d is_chunked(dict(response.getheaders()))"},{"line_number":3648,"context_line":""},{"line_number":3649,"context_line":"    if response.status \u003d\u003d 200:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_27894d27","line":3646,"in_reply_to":"7af24918_bbb93531","updated":"2016-03-02 10:22:43.000000000","message":"I\u0027d just move http_response_to_document_iters. There are no callers of it in this module, so nothing else needs to move.\n\nI\u0027ll remove the internal import in parse_mime_headers. Imports like that don\u0027t always work well with eventlet.","commit_id":"fcbcfacf6eb6b367847ba6fa8b7c202455bd8d8e"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"dcb1222681dabd989ba1a0ff14d34137b911ba20","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"    :param response: HTTP response, like from bufferedhttp.http_connect(),"},{"line_number":3644,"context_line":"        not a swob.Response."},{"line_number":3645,"context_line":"    \"\"\""},{"line_number":3646,"context_line":"    from swift.common.swob import is_chunked"},{"line_number":3647,"context_line":"    chunked \u003d is_chunked(dict(response.getheaders()))"},{"line_number":3648,"context_line":""},{"line_number":3649,"context_line":"    if response.status \u003d\u003d 200:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7af24918_bbb93531","line":3646,"in_reply_to":"7af24918_f462b515","updated":"2016-03-01 15:33:28.000000000","message":"1.\nShould I move only http_response_to_document_iters, or also move the other similar convert functions?\n\n2.\nThere are another function, parse_mime_headers, which imports swob internally. Should we also move that? (I think I should do that in another patch)","commit_id":"fcbcfacf6eb6b367847ba6fa8b7c202455bd8d8e"}],"test/unit/__init__.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"f352a08f5ceb8702731026e7b402b6f4888261d1","unresolved":false,"context_lines":[{"line_number":908,"context_line":"            else:"},{"line_number":909,"context_line":"                headers_base[\u0027content-length\u0027] \u003d len(self.body)"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"            headers \u003d swob.HeaderKeyDict(headers_base)"},{"line_number":912,"context_line":"            if self.status // 100 \u003d\u003d 2:"},{"line_number":913,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d \\"},{"line_number":914,"context_line":"                    kwargs.get(\u0027count\u0027, 12345)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_551289b5","line":911,"updated":"2015-12-11 09:03:18.000000000","message":"I think we don\u0027t have to add chunked arg. Just pass {\u0027transfer-encoding\u0027: \u0027chunked\u0027} like:\n\n with set_http_connect(200, headers\u003d{\u0027transfer-encoding\u0027: \u0027chunked\u0027}):","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e240d7523ee307d298e0283e4e140cd6e5213f6f","unresolved":false,"context_lines":[{"line_number":908,"context_line":"            else:"},{"line_number":909,"context_line":"                headers_base[\u0027content-length\u0027] \u003d len(self.body)"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"            headers \u003d swob.HeaderKeyDict(headers_base)"},{"line_number":912,"context_line":"            if self.status // 100 \u003d\u003d 2:"},{"line_number":913,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d \\"},{"line_number":914,"context_line":"                    kwargs.get(\u0027count\u0027, 12345)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_36dddc70","line":911,"in_reply_to":"7a740942_24a2294c","updated":"2016-01-18 06:17:31.000000000","message":"Done","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"25d596870c93421b8a6da38abf2a50a1c7e6bf33","unresolved":false,"context_lines":[{"line_number":908,"context_line":"            else:"},{"line_number":909,"context_line":"                headers_base[\u0027content-length\u0027] \u003d len(self.body)"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"            headers \u003d swob.HeaderKeyDict(headers_base)"},{"line_number":912,"context_line":"            if self.status // 100 \u003d\u003d 2:"},{"line_number":913,"context_line":"                headers[\u0027x-account-container-count\u0027] \u003d \\"},{"line_number":914,"context_line":"                    kwargs.get(\u0027count\u0027, 12345)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_24a2294c","line":911,"in_reply_to":"7a740942_551289b5","updated":"2015-12-11 10:49:18.000000000","message":"That\u0027s better, so I\u0027ll fix this.","commit_id":"54e01551ca88d45210bb3e7907ca5c0c5fed9280"}],"test/unit/proxy/controllers/test_obj.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"62ab1496b154f2bbd53427534fbae44e0b6957e4","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        self.assertEqual(resp.status_int, 200)"},{"line_number":686,"context_line":"        self.assertEqual(resp.headers[\u0027Transfer-Encoding\u0027], \u0027chunked\u0027)"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    def test_GET_transfer_encoding_chunked_with_range(self):"},{"line_number":689,"context_line":"        req \u003d swift.common.swob.Request.blank(\u0027/v1/a/c/o\u0027,"},{"line_number":690,"context_line":"                                              headers\u003d{\u0027Range\u0027: \u0027bytes\u003d0-10\u0027})"},{"line_number":691,"context_line":"        with set_http_connect(206, headers\u003d{\u0027transfer-encoding\u0027: \u0027chunked\u0027,"},{"line_number":692,"context_line":"                                            \u0027Content-Range\u0027: \u0027bytes 0-10/20\u0027}):"},{"line_number":693,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":694,"context_line":"        self.assertEqual(resp.status_int, 500)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    def test_GET_error(self):"},{"line_number":697,"context_line":"        req \u003d swift.common.swob.Request.blank(\u0027/v1/a/c/o\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_d870bda6","line":694,"range":{"start_line":688,"start_character":0,"end_line":694,"end_character":46},"updated":"2016-01-14 11:18:46.000000000","message":"Remove this test because this should not happen, based on spec about HTTP.","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"56a9943dc257ada84f79e2d3c3d17b510e70c3fa","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        self.assertEqual(resp.status_int, 200)"},{"line_number":686,"context_line":"        self.assertEqual(resp.headers[\u0027Transfer-Encoding\u0027], \u0027chunked\u0027)"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"    def test_GET_transfer_encoding_chunked_with_range(self):"},{"line_number":689,"context_line":"        req \u003d swift.common.swob.Request.blank(\u0027/v1/a/c/o\u0027,"},{"line_number":690,"context_line":"                                              headers\u003d{\u0027Range\u0027: \u0027bytes\u003d0-10\u0027})"},{"line_number":691,"context_line":"        with set_http_connect(206, headers\u003d{\u0027transfer-encoding\u0027: \u0027chunked\u0027,"},{"line_number":692,"context_line":"                                            \u0027Content-Range\u0027: \u0027bytes 0-10/20\u0027}):"},{"line_number":693,"context_line":"            resp \u003d req.get_response(self.app)"},{"line_number":694,"context_line":"        self.assertEqual(resp.status_int, 500)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    def test_GET_error(self):"},{"line_number":697,"context_line":"        req \u003d swift.common.swob.Request.blank(\u0027/v1/a/c/o\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"da6ed579_5648902d","line":694,"range":{"start_line":688,"start_character":0,"end_line":694,"end_character":46},"in_reply_to":"da6ed579_d870bda6","updated":"2016-01-18 06:19:03.000000000","message":"Done","commit_id":"c51379ceb0145e87530e05eefbf71f93396914c3"}]}
