)]}'
{"test/functional/test_object.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"98f6b2edcc907db4234099cdbbb9ca65e1bed85b","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        def metadata(resp):"},{"line_number":165,"context_line":"            metadata \u003d {}"},{"line_number":166,"context_line":"            for k, v in resp.headers.items():"},{"line_number":167,"context_line":"                if \u0027meta\u0027 in k.lower():"},{"line_number":168,"context_line":"                    metadata[k] \u003d v"},{"line_number":169,"context_line":"            return metadata"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_73747467","line":166,"updated":"2016-07-06 13:48:06.000000000","message":"OK. This test works because the requests Response uses a CaseInsensitiveDict which preserves the original case of the keys when generating items(), unlike swift HeaderKeyDict which title cases all keys when generating items().","commit_id":"bb83110be18cba2d44bccce06c196ac4a50f8803"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"d496473fbfad8eeecb1ec6071965f35714165294","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        resp \u003d retry(get)"},{"line_number":197,"context_line":"        self.assertEqual(\u0027\u0027, resp.read())"},{"line_number":198,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":199,"context_line":"        self.assertEqual(metadata(resp), {"},{"line_number":200,"context_line":"            \u0027X-Object-Meta-Color\u0027: \u0027blUe\u0027,"},{"line_number":201,"context_line":"            \u0027X-Object-Meta-Food\u0027: \u0027PizZa\u0027,"},{"line_number":202,"context_line":"        })"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_3b1de3bd","line":199,"updated":"2016-07-05 18:08:12.000000000","message":"This needs to be assertDictEqual (and at line 242).  I got a failure from the test when the ordering was different in the two dicts.","commit_id":"bb83110be18cba2d44bccce06c196ac4a50f8803"},{"author":{"_account_id":12279,"name":"Janie Richling","email":"jrichli@us.ibm.com","username":"jrichli"},"change_message_id":"1390ff573b4fb968875640af9a013436f87f4afa","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        resp \u003d retry(get)"},{"line_number":197,"context_line":"        self.assertEqual(\u0027\u0027, resp.read())"},{"line_number":198,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":199,"context_line":"        self.assertEqual(metadata(resp), {"},{"line_number":200,"context_line":"            \u0027X-Object-Meta-Color\u0027: \u0027blUe\u0027,"},{"line_number":201,"context_line":"            \u0027X-Object-Meta-Food\u0027: \u0027PizZa\u0027,"},{"line_number":202,"context_line":"        })"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_829a9961","line":199,"in_reply_to":"1aa78d24_281629a7","updated":"2016-07-05 19:20:25.000000000","message":"sorry, you are right. The ordering was not the problem. For some reason, I got a failure on line 244 - but it stopped happening when i switched to assertDictEqual.  I can try to reproduce and find the real cause.  Here is the assertion error:\nhttp://paste.openstack.org/show/526062/","commit_id":"bb83110be18cba2d44bccce06c196ac4a50f8803"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5b5595ec0e278459947ecdb7413bff9c547d31f1","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        resp \u003d retry(get)"},{"line_number":197,"context_line":"        self.assertEqual(\u0027\u0027, resp.read())"},{"line_number":198,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":199,"context_line":"        self.assertEqual(metadata(resp), {"},{"line_number":200,"context_line":"            \u0027X-Object-Meta-Color\u0027: \u0027blUe\u0027,"},{"line_number":201,"context_line":"            \u0027X-Object-Meta-Food\u0027: \u0027PizZa\u0027,"},{"line_number":202,"context_line":"        })"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_281629a7","line":199,"in_reply_to":"1aa78d24_3b1de3bd","updated":"2016-07-05 18:14:30.000000000","message":"?  dicts don\u0027t *have* order?","commit_id":"bb83110be18cba2d44bccce06c196ac4a50f8803"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"98f6b2edcc907db4234099cdbbb9ca65e1bed85b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        # sysmeta put"},{"line_number":216,"context_line":"        req_metadata \u003d {"},{"line_number":217,"context_line":"            \u0027X-Object-Meta-Color\u0027: \u0027Red\u0027,"},{"line_number":218,"context_line":"            \u0027X-Object-Sysmeta-Color\u0027: \u0027Green\u0027,"},{"line_number":219,"context_line":"        }"},{"line_number":220,"context_line":"        resp \u003d retry(put)"},{"line_number":221,"context_line":"        resp.read()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_13125009","line":218,"updated":"2016-07-06 13:48:06.000000000","message":"no transient sysmeta in PUT?","commit_id":"bb83110be18cba2d44bccce06c196ac4a50f8803"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"98f6b2edcc907db4234099cdbbb9ca65e1bed85b","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        self.assertEqual(metadata(resp), {"},{"line_number":258,"context_line":"            \u0027X-Object-Meta-Foo\u0027: \u0027B\\xc3\\xa2r\u0027,"},{"line_number":259,"context_line":"        })"},{"line_number":260,"context_line":"        # sysmeta post"},{"line_number":261,"context_line":"        req_metadata \u003d {"},{"line_number":262,"context_line":"            \u0027X-Object-Meta-Foo\u0027: u\u0027B\\u00e5z\u0027,"},{"line_number":263,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_93fe40ac","line":260,"updated":"2016-07-06 13:48:06.000000000","message":"s/sysmeta/non-ascii/","commit_id":"bb83110be18cba2d44bccce06c196ac4a50f8803"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"bad36137e7481239238ff91be8345c70297dd4b3","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        resp \u003d retry(get)"},{"line_number":197,"context_line":"        self.assertEqual(\u0027\u0027, resp.read())"},{"line_number":198,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":199,"context_line":"        self.assertEqual(metadata(resp), {"},{"line_number":200,"context_line":"            \u0027X-Object-Meta-Color\u0027: \u0027blUe\u0027,"},{"line_number":201,"context_line":"            \u0027X-Object-Meta-Food\u0027: \u0027PizZa\u0027,"},{"line_number":202,"context_line":"        })"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_a863b4af","line":199,"updated":"2016-07-07 18:41:24.000000000","message":"Seems like this should just be req_metadata? same is true for some of the other tests.\n\nLooks like a lot of repetition: we put or post, then we check response body and assert they are equal. Can potentially create a helper method. \n\nCould we also benefit from splitting this into smaller test cases?","commit_id":"a2afabf283811cdfd66b98add0df626008682ff8"}]}
