)]}'
{"test/unit/common/middleware/helpers.py":[{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"6636dd0eec129aef42a2345579257be8822299a9","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class FakeAppThatExcepts(object):"},{"line_number":174,"context_line":"    msg \u003d \u0027Testing application exception\u0027"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def __call__(self, env, start_response):"},{"line_number":177,"context_line":"        raise HTTPException(self.msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a1b2928_8f81894d","line":174,"updated":"2016-04-11 15:24:28.000000000","message":"should this be MSG instead of msg?","commit_id":"8c505111bd874e67eac29c3db429bdcf0689d1ae"}],"test/unit/common/middleware/test_decrypter.py":[{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"6636dd0eec129aef42a2345579257be8822299a9","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        self.assertEqual(\u0027500 Internal Error\u0027, resp.status)"},{"line_number":215,"context_line":"        self.assertEqual(\u0027Error decrypting header value\u0027, resp.body)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_get_with_bad_iv_for_object_body(self):"},{"line_number":218,"context_line":"        # use bad iv for object body"},{"line_number":219,"context_line":"        env \u003d {\u0027REQUEST_METHOD\u0027: \u0027GET\u0027,"},{"line_number":220,"context_line":"               \u0027swift.crypto.fetch_crypto_keys\u0027: fetch_crypto_keys}"},{"line_number":221,"context_line":"        req \u003d Request.blank(\u0027/v1/a/c/o\u0027, environ\u003denv)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a1b2928_0fef39e9","line":218,"range":{"start_line":217,"start_character":51,"end_line":218,"end_character":36},"updated":"2016-04-11 15:24:28.000000000","message":"could change this get to be GET as well","commit_id":"8c505111bd874e67eac29c3db429bdcf0689d1ae"}],"test/unit/common/middleware/test_encrypter.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"dc5c8d8fe09756aff7dd2fdea50dff74d89f2041","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                \u0027x-object-sysmeta-test\u0027: \u0027do not encrypt me\u0027}"},{"line_number":53,"context_line":"        req \u003d Request.blank("},{"line_number":54,"context_line":"            \u0027/v1/a/c/o\u0027, environ\u003denv, body\u003dplaintext, headers\u003dhdrs)"},{"line_number":55,"context_line":"        key \u003d fetch_crypto_keys()[\u0027object\u0027]"},{"line_number":56,"context_line":"        self.app.register(\u0027PUT\u0027, \u0027/v1/a/c/o\u0027, HTTPCreated, {})"},{"line_number":57,"context_line":"        resp \u003d req.get_response(self.encrypter)"},{"line_number":58,"context_line":"        self.assertEqual(\u0027201 Created\u0027, resp.status)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_49beffd4","line":55,"updated":"2016-04-13 19:51:09.000000000","message":"is this line needed? key is already defined in line 41.","commit_id":"79dc1ad249e788015acb7c48e6d1522c31734f8f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0293ec80d99f56e3111ce723cbdc8cfab695ee9e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                \u0027x-object-sysmeta-test\u0027: \u0027do not encrypt me\u0027}"},{"line_number":53,"context_line":"        req \u003d Request.blank("},{"line_number":54,"context_line":"            \u0027/v1/a/c/o\u0027, environ\u003denv, body\u003dplaintext, headers\u003dhdrs)"},{"line_number":55,"context_line":"        key \u003d fetch_crypto_keys()[\u0027object\u0027]"},{"line_number":56,"context_line":"        self.app.register(\u0027PUT\u0027, \u0027/v1/a/c/o\u0027, HTTPCreated, {})"},{"line_number":57,"context_line":"        resp \u003d req.get_response(self.encrypter)"},{"line_number":58,"context_line":"        self.assertEqual(\u0027201 Created\u0027, resp.status)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_640f8f88","line":55,"in_reply_to":"5a18252c_49beffd4","updated":"2016-04-14 08:26:20.000000000","message":"no, good spot.","commit_id":"79dc1ad249e788015acb7c48e6d1522c31734f8f"},{"author":{"_account_id":12261,"name":"Mahati","email":"mahati.chamarthy@gmail.com","username":"Mahati"},"change_message_id":"d9083388302530b9756979b4713e54203fdb8583","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # verify that other middleware\u0027s footers made it to app, including any"},{"line_number":133,"context_line":"        # container update overrides but not Etag"},{"line_number":134,"context_line":"        other_footers.pop(\u0027Etag\u0027)"},{"line_number":135,"context_line":"        for k, v in other_footers.items():"},{"line_number":136,"context_line":"            self.assertEqual(v, req_hdrs[k])"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_d4ec872b","line":134,"updated":"2016-04-13 12:00:49.000000000","message":"we\u0027re not exactly verifying this right? as we are manually popping it out?","commit_id":"79dc1ad249e788015acb7c48e6d1522c31734f8f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0293ec80d99f56e3111ce723cbdc8cfab695ee9e","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # verify that other middleware\u0027s footers made it to app, including any"},{"line_number":133,"context_line":"        # container update overrides but not Etag"},{"line_number":134,"context_line":"        other_footers.pop(\u0027Etag\u0027)"},{"line_number":135,"context_line":"        for k, v in other_footers.items():"},{"line_number":136,"context_line":"            self.assertEqual(v, req_hdrs[k])"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_a75d2949","line":134,"in_reply_to":"5a18252c_d4ec872b","updated":"2016-04-14 08:26:20.000000000","message":"Etag is popped from other_footers because we do not expect it to be in the req headers. But then we verify the value we do expect, from encrypter, is in req headers at line 139","commit_id":"79dc1ad249e788015acb7c48e6d1522c31734f8f"}]}
