)]}'
{"tempest/api/image/v2/test_image_data.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c48d906b7e57e17a707c613a9fa8e50f36624204","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ImageDataTest(base.BaseV2ImageTest):"},{"line_number":27,"context_line":"    \"\"\"Here we test the download and upload of image data.\"\"\""},{"line_number":28,"context_line":"    "},{"line_number":29,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":30,"context_line":"    def test_image_data(self):"},{"line_number":31,"context_line":"        resp, image \u003d self.create_image(name\u003d\u0027test\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2Frck%3D","line":28,"updated":"2013-10-11 10:39:44.000000000","message":"You should remove these whitespaces.","commit_id":"4aacf43dd54ddb9918d9891ec0c0cc2fff0ba9d2"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c48d906b7e57e17a707c613a9fa8e50f36624204","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                                        disk_format\u003d\u0027raw\u0027,"},{"line_number":34,"context_line":"                                        is_public\u003dTrue)"},{"line_number":35,"context_line":"        self.assertEqual(resp.status, 201)"},{"line_number":36,"context_line":"        "},{"line_number":37,"context_line":"        image_file \u003d StringIO.StringIO(\u0027*\u0027 * 1024)"},{"line_number":38,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":39,"context_line":"        self.assertEqual(resp.status, 204)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2Frcg%3D","line":36,"updated":"2013-10-11 10:39:44.000000000","message":"ditto","commit_id":"4aacf43dd54ddb9918d9891ec0c0cc2fff0ba9d2"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c48d906b7e57e17a707c613a9fa8e50f36624204","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        image_file \u003d StringIO.StringIO(\u0027*\u0027 * 1024)"},{"line_number":38,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":39,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":40,"context_line":"        "},{"line_number":41,"context_line":"        resp, image_data \u003d self.client.get_image_file(image[\u0027id\u0027])"},{"line_number":42,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":43,"context_line":"        self.assertEqual(len(image_data), 1024)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2Frcc%3D","line":40,"updated":"2013-10-11 10:39:44.000000000","message":"ditto","commit_id":"4aacf43dd54ddb9918d9891ec0c0cc2fff0ba9d2"}],"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"a209d36129e89b51e285981ddc49c83000c0dcd9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                                        container_format\u003d\u0027bare\u0027,"},{"line_number":76,"context_line":"                                        disk_format\u003d\u0027raw\u0027,"},{"line_number":77,"context_line":"                                        is_public\u003dTrue)"},{"line_number":78,"context_line":"        self.assertEqual(resp.status, 201)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        image_file \u003d StringIO.StringIO(\u0027*\u0027 * 1024)"},{"line_number":81,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoIU%3D","line":78,"updated":"2013-10-12 06:14:49.000000000","message":"I think it should be asserted here like the above because early checking is good for debugging when an error will occur.","commit_id":"1ebe512ce0c8d4ad67fe5dbccd7b511f97f78047"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"a209d36129e89b51e285981ddc49c83000c0dcd9","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":82,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        resp, image_data \u003d self.client.get_image_file(image[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":86,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoIM%3D","line":84,"updated":"2013-10-12 06:14:49.000000000","message":"Why don\u0027t you move this to test_register_then_upload()?","commit_id":"1ebe512ce0c8d4ad67fe5dbccd7b511f97f78047"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"786f46d10266757ddb3e67d54d0893c291ebc9b8","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":82,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        resp, image_data \u003d self.client.get_image_file(image[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":86,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fl24%3D","line":84,"in_reply_to":"AAAATH%2F%2Fl4E%3D","updated":"2013-10-14 04:03:47.000000000","message":"I think we can add the get_image_file() to test_register_then_upload() because get_image_file() and assert*() can check the uploaded file directly.\nBut this is not strong opinion. I think the separate test cases are also ok if you avoid the duplicated code.","commit_id":"1ebe512ce0c8d4ad67fe5dbccd7b511f97f78047"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"c49ba4c356d7e021630c5ca4043690b17c028697","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":82,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        resp, image_data \u003d self.client.get_image_file(image[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":86,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fl4E%3D","line":84,"in_reply_to":"AAAATH%2F%2Fl5s%3D","updated":"2013-10-14 03:42:10.000000000","message":"Sure. But I am not sure what is the tempest criteria. Could we add a not related test case to an existing file? This case is not for register and upload.","commit_id":"1ebe512ce0c8d4ad67fe5dbccd7b511f97f78047"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"3cc3edfbe8e64e37b60d9231a4b1913e2b9e3e3d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":82,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        resp, image_data \u003d self.client.get_image_file(image[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":86,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2Fl5s%3D","line":84,"in_reply_to":"AAAATH%2F%2FoC8%3D","updated":"2013-10-14 03:09:34.000000000","message":"No, My opinion is just adding get_image_file() with it, not replacing.\nCould we do that?","commit_id":"1ebe512ce0c8d4ad67fe5dbccd7b511f97f78047"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"d8ca87811aaf402e5d19f326322bb5d74003d081","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        resp, body \u003d self.client.store_image(image[\u0027id\u0027], data\u003dimage_file)"},{"line_number":82,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        resp, image_data \u003d self.client.get_image_file(image[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":86,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATH%2F%2FoC8%3D","line":84,"in_reply_to":"AAAATH%2F%2FoIM%3D","updated":"2013-10-12 06:54:15.000000000","message":"The test target is different between them. But I am thinking whether I can move it to test_register_then_upload(). What\u0027s your opinion? Replacing get_image_metadata() with it?","commit_id":"1ebe512ce0c8d4ad67fe5dbccd7b511f97f78047"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"68360fdd18e4f5aa1d2707c8d9c58856f7190f4d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Now downloading an image file"},{"line_number":69,"context_line":"        resp, image_data \u003d self.client.get_image_file(image_id)"},{"line_number":70,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":71,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ListImagesTest(base.BaseV2ImageTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2Flyk%3D","line":71,"updated":"2013-10-14 05:28:33.000000000","message":"Why not check this directly like below?\n\n assertEqual(image_data.getvalue(), image_file.getvalue())","commit_id":"8b1c4a8e841f2f4a246cbf08dab21fdd6a1930b8"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"955db49089d5b861c95a12a1879c4c80da287b2f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Now downloading an image file"},{"line_number":69,"context_line":"        resp, image_data \u003d self.client.get_image_file(image_id)"},{"line_number":70,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":71,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ListImagesTest(base.BaseV2ImageTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FVWk%3D","line":71,"in_reply_to":"AAAATH%2F%2FlqI%3D","updated":"2013-11-09 23:02:01.000000000","message":"I agree with YangYu. Add an extra line after L71, for checking the value.\n\nAlso compare length is faster than comparing values, IMO.","commit_id":"8b1c4a8e841f2f4a246cbf08dab21fdd6a1930b8"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"f25b436235bd3a8f9358ac2259ffd1960bb48ffe","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Now downloading an image file"},{"line_number":69,"context_line":"        resp, image_data \u003d self.client.get_image_file(image_id)"},{"line_number":70,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":71,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ListImagesTest(base.BaseV2ImageTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FlqI%3D","line":71,"in_reply_to":"AAAATH%2F%2FluQ%3D","updated":"2013-10-14 06:44:59.000000000","message":"Yes, I think checking length is better than checking values. Maybe we can keep the discussion here, see more comments about this problem. But I am ok to add another assert to check values.","commit_id":"8b1c4a8e841f2f4a246cbf08dab21fdd6a1930b8"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"725c880276a3b77feafc714b809f8111de340655","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Now downloading an image file"},{"line_number":69,"context_line":"        resp, image_data \u003d self.client.get_image_file(image_id)"},{"line_number":70,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":71,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ListImagesTest(base.BaseV2ImageTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FluQ%3D","line":71,"in_reply_to":"AAAATH%2F%2FlwQ%3D","updated":"2013-10-14 06:13:43.000000000","message":"My above opinion is not strong. So you can ignore my comment.\nBut I have a question. Does your \u0027earlier\u0027 means \u0027the testing can be faster speed\u0027?\nIf so, I don\u0027t know the difference of the speed between the checking lengths and checking values..","commit_id":"8b1c4a8e841f2f4a246cbf08dab21fdd6a1930b8"},{"author":{"_account_id":6981,"name":"Yang Yu","email":"yangyu@vmware.com","username":"yuyangbj"},"change_message_id":"8dfdbbf34ca234fe3aec405f86085127d673167c","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        # Now downloading an image file"},{"line_number":69,"context_line":"        resp, image_data \u003d self.client.get_image_file(image_id)"},{"line_number":70,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":71,"context_line":"        self.assertEqual(len(image_data), 1024)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"class ListImagesTest(base.BaseV2ImageTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATH%2F%2FlwQ%3D","line":71,"in_reply_to":"AAAATH%2F%2Flyk%3D","updated":"2013-10-14 05:53:13.000000000","message":"Masayuki lgawa, thanks. Maybe I can add a line of code to check their value, but I hope we keep the line 71 there so that we can find error earlier through checking length of image_data. Do you agree with it?","commit_id":"8b1c4a8e841f2f4a246cbf08dab21fdd6a1930b8"}]}
