)]}'
{"test/functional/swift_test_client.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"4ea28f212101b9c4e82fc0ccde473caa5c8ae99a","unresolved":false,"context_lines":[{"line_number":902,"context_line":"        if cfg is None:"},{"line_number":903,"context_line":"            cfg \u003d {}"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"        self.metadata \u003d self.metadata if metadata is None else metadata"},{"line_number":906,"context_line":""},{"line_number":907,"context_line":"        if self.metadata:"},{"line_number":908,"context_line":"            headers \u003d self.make_headers(cfg\u003dcfg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_ddb3a298","line":905,"range":{"start_line":905,"start_character":24,"end_line":905,"end_character":71},"updated":"2016-09-26 13:24:34.000000000","message":"change small statement here, using {} instead of self.metadata if caller set {} for metadata arg.","commit_id":"68d95c0cfdc3bd324978d8a82c2ccd711c94ff73"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40778683d764c91b61a80b61c06de34fafba1a98","unresolved":false,"context_lines":[{"line_number":902,"context_line":"        if cfg is None:"},{"line_number":903,"context_line":"            cfg \u003d {}"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"        self.metadata \u003d self.metadata if metadata is None else metadata"},{"line_number":906,"context_line":""},{"line_number":907,"context_line":"        if self.metadata:"},{"line_number":908,"context_line":"            headers \u003d self.make_headers(cfg\u003dcfg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_5a12b9b5","line":905,"range":{"start_line":905,"start_character":24,"end_line":905,"end_character":71},"in_reply_to":"5a8bc5a2_ddb3a298","updated":"2016-09-29 00:50:00.000000000","message":"Nice. Seems much more reflective of how POST works for objects.","commit_id":"68d95c0cfdc3bd324978d8a82c2ccd711c94ff73"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c74865dc96661b23e1abbe20dfaa529753af6506","unresolved":false,"context_lines":[{"line_number":902,"context_line":"        if cfg is None:"},{"line_number":903,"context_line":"            cfg \u003d {}"},{"line_number":904,"context_line":""},{"line_number":905,"context_line":"        self.metadata \u003d self.metadata if metadata is None else metadata"},{"line_number":906,"context_line":""},{"line_number":907,"context_line":"        if self.metadata:"},{"line_number":908,"context_line":"            headers \u003d self.make_headers(cfg\u003dcfg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_7e337fab","line":905,"updated":"2016-09-30 14:21:56.000000000","message":"nit: fwiw I would have gone further and raised a ValueError if metadata is None, but I can see at least one place where that would break a test that sets the metadata var and then calls sync_metadata with no args :/\n\nI find this test client quite non-intuitive, and you are fixing an example of that, but it also remains the case that sync_metadata(metadata\u003dNone) will leave the metadata in its previous state, which is odd. I think this must have frustrated me before and I added a straightforward post() method [1].\n\nTo be fair, the class is called File and I guess its trying to behave more like a client-side file than a swift object???\n\n[1] https://github.com/openstack/swift/blob/03b5e76d0942c075a0286db47bc9e0f029b1e231/test/functional/swift_test_client.py#L1042-L1042","commit_id":"03b5e76d0942c075a0286db47bc9e0f029b1e231"}],"test/functional/tests.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40778683d764c91b61a80b61c06de34fafba1a98","unresolved":false,"context_lines":[{"line_number":4340,"context_line":"            versioned_obj.delete()"},{"line_number":4341,"context_line":"        self.assertEqual(403, cm.exception.status)"},{"line_number":4342,"context_line":""},{"line_number":4343,"context_line":"        self.env.account.conn.storage_token \u003d org_token"},{"line_number":4344,"context_line":""},{"line_number":4345,"context_line":"        # Verify with token from first account"},{"line_number":4346,"context_line":"        self.assertEqual(\"bbbbb\", versioned_obj.read())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_7a7e95e5","line":4343,"updated":"2016-09-29 00:50:00.000000000","message":"We probably still want this in a try/finally block; otherwise a single test failure can corrupt the environment for other tests, and the cascaded failures will be harder to diagnose.","commit_id":"68d95c0cfdc3bd324978d8a82c2ccd711c94ff73"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"d9c883010afc96b150a02a5e9ec073a05bd79101","unresolved":false,"context_lines":[{"line_number":4340,"context_line":"            versioned_obj.delete()"},{"line_number":4341,"context_line":"        self.assertEqual(403, cm.exception.status)"},{"line_number":4342,"context_line":""},{"line_number":4343,"context_line":"        self.env.account.conn.storage_token \u003d org_token"},{"line_number":4344,"context_line":""},{"line_number":4345,"context_line":"        # Verify with token from first account"},{"line_number":4346,"context_line":"        self.assertEqual(\"bbbbb\", versioned_obj.read())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_5db470f1","line":4343,"in_reply_to":"3a98d1f4_7a7e95e5","updated":"2016-09-29 04:07:44.000000000","message":"Oh, yeah. True. Nice catch. Done.","commit_id":"68d95c0cfdc3bd324978d8a82c2ccd711c94ff73"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"40778683d764c91b61a80b61c06de34fafba1a98","unresolved":false,"context_lines":[{"line_number":4538,"context_line":"            versioned_obj.delete()"},{"line_number":4539,"context_line":"        self.assertEqual(403, cm.exception.status)"},{"line_number":4540,"context_line":""},{"line_number":4541,"context_line":"        self.env.account.conn.storage_token \u003d org_token"},{"line_number":4542,"context_line":""},{"line_number":4543,"context_line":"        # Verify with token from first account"},{"line_number":4544,"context_line":"        self.assertEqual(\"bbbbb\", versioned_obj.read())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_5a60f935","line":4541,"updated":"2016-09-29 00:50:00.000000000","message":"Ditto.","commit_id":"68d95c0cfdc3bd324978d8a82c2ccd711c94ff73"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"d9c883010afc96b150a02a5e9ec073a05bd79101","unresolved":false,"context_lines":[{"line_number":4538,"context_line":"            versioned_obj.delete()"},{"line_number":4539,"context_line":"        self.assertEqual(403, cm.exception.status)"},{"line_number":4540,"context_line":""},{"line_number":4541,"context_line":"        self.env.account.conn.storage_token \u003d org_token"},{"line_number":4542,"context_line":""},{"line_number":4543,"context_line":"        # Verify with token from first account"},{"line_number":4544,"context_line":"        self.assertEqual(\"bbbbb\", versioned_obj.read())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_9b460022","line":4541,"in_reply_to":"3a98d1f4_5a60f935","updated":"2016-09-29 04:07:44.000000000","message":"Done","commit_id":"68d95c0cfdc3bd324978d8a82c2ccd711c94ff73"}]}
