)]}'
{"swift/common/middleware/proxy_logging.py":[{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"5d9cb51316cdf13b17e6c1e04f8cc94d7f2ffe58","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    break"},{"line_number":234,"context_line":"            else:"},{"line_number":235,"context_line":"                if not chunk:"},{"line_number":236,"context_line":"                    start_response_args[0][1].append((\u0027content-length\u0027, \u00270\u0027))"},{"line_number":237,"context_line":"                elif isinstance(iterable, list):"},{"line_number":238,"context_line":"                    start_response_args[0][1].append("},{"line_number":239,"context_line":"                        (\u0027content-length\u0027, str(sum(len(i) for i in iterable))))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BTWY%3D","line":236,"updated":"2013-11-27 16:51:35.000000000","message":"Not sure if you care, but this branch is still untested (making coverage 99% instead of 100%).  Prolly not a huge deal.\n\nIf I\u0027m reading the coverage report correctly, what\u0027s missing is the branch where neither \u0027content-length\u0027 nor \u0027transfer-encoding\u0027 were in the headers AND chunk is \"truthy\" AND the supplied iterable was not a list.  But it could also be all of that but the supplied iterable was a list.  Not positive.","commit_id":"55fb7bc53f6a6aaa8807cd34825ada19ab76fd64"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"c0aedf6f0e701fee24b5d585eb424ebef9aa2604","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                    break"},{"line_number":234,"context_line":"            else:"},{"line_number":235,"context_line":"                if not chunk:"},{"line_number":236,"context_line":"                    start_response_args[0][1].append((\u0027content-length\u0027, \u00270\u0027))"},{"line_number":237,"context_line":"                elif isinstance(iterable, list):"},{"line_number":238,"context_line":"                    start_response_args[0][1].append("},{"line_number":239,"context_line":"                        (\u0027content-length\u0027, str(sum(len(i) for i in iterable))))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BSu8%3D","line":236,"in_reply_to":"AAAATn%2F%2BTWY%3D","updated":"2013-11-27 21:24:15.000000000","message":"Darrell, I am not seeing that on my runs. Instead I am seeing that there are three types of iterables being covered: 1. those that end up returning nothing, those that return something as a list, those that return something as a generator.  The tests don\u0027t seem to cover the generator case, so I have added that, and at least in my runs I get 100% coverage.","commit_id":"55fb7bc53f6a6aaa8807cd34825ada19ab76fd64"}],"test/unit/common/middleware/test_proxy_logging.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"1ae508a883c1c80a207ac0b10531f7313e8c2a45","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        self.assertUpdateStats(\u0027SOS.GET.200.xfer\u0027, len(resp_body), app)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def test_log_headers(self):"},{"line_number":333,"context_line":"        for conf_key in [\u0027access_log_headers\u0027, \u0027log_headers\u0027]:"},{"line_number":334,"context_line":"            app \u003d proxy_logging.ProxyLoggingMiddleware(FakeApp(),"},{"line_number":335,"context_line":"                                                       {conf_key: \u0027yes\u0027})"},{"line_number":336,"context_line":"            app.access_logger \u003d FakeLogger()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2Bb%2Fs%3D","line":333,"updated":"2013-11-26 03:30:49.000000000","message":"This looks like an extra patch segment leaked from the previous \"precise logging\" patch. Better remove this, no?","commit_id":"e934ecb54e7acfacc0cf21db046e7e8a9128949f"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"3e1a1f82d38a19ec2bb8a2c7ef883c35fc52732f","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        self.assertUpdateStats(\u0027SOS.GET.200.xfer\u0027, len(resp_body), app)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    def test_log_headers(self):"},{"line_number":333,"context_line":"        for conf_key in [\u0027access_log_headers\u0027, \u0027log_headers\u0027]:"},{"line_number":334,"context_line":"            app \u003d proxy_logging.ProxyLoggingMiddleware(FakeApp(),"},{"line_number":335,"context_line":"                                                       {conf_key: \u0027yes\u0027})"},{"line_number":336,"context_line":"            app.access_logger \u003d FakeLogger()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BZJg%3D","line":333,"in_reply_to":"AAAATn%2F%2Bb%2Fs%3D","updated":"2013-11-26 15:40:54.000000000","message":"Why?  This adds covers the behavior of both configuration keys, no?","commit_id":"e934ecb54e7acfacc0cf21db046e7e8a9128949f"}]}
