)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"3440cd4ad244eedb675550725f6f18e77b6863cd","unresolved":false,"context_lines":[{"line_number":11,"context_line":" *Delete member with invalid image"},{"line_number":12,"context_line":" *Delete member with invalid tenant"},{"line_number":13,"context_line":" *Delete member with invalid tenant and image"},{"line_number":14,"context_line":" Add member with invalid tenant and image"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I23ccdf255c8c4f4ba448207beab1302ca1424f59"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAS3%2F%2F1Jg%3D","line":14,"updated":"2013-09-18 15:32:37.000000000","message":"(* ;)","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"448bfa1909e414e5e3c0e65a4e9dea329ae7cee2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Here added negative tests for image member"},{"line_number":10,"context_line":" *Add member with invalid image"},{"line_number":11,"context_line":" *Add member with invalid tenant and image"},{"line_number":12,"context_line":" *Delete member with invalid image"},{"line_number":13,"context_line":" *Delete member with invalid tenant"},{"line_number":14,"context_line":" *Delete member with invalid tenant and image"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAS3%2F%2FuUc%3D","line":11,"updated":"2013-09-20 15:12:58.000000000","message":"nit: line11 and 14 are unnecessary.","commit_id":"a3c25affe3ff4892ab224490ade0ae1557056a02"}],"tempest/api/image/v1/test_image_members.py":[{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"c07aee6043872ebfd433dbf7f5f0505ddf5a46bc","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.api.image import base"},{"line_number":20,"context_line":"from tempest import clients"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ImageMembersTests(base.BaseV1ImageTest):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1HA%3D","line":22,"updated":"2013-09-18 15:38:21.000000000","message":"imports not in alphabetical order","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"3440cd4ad244eedb675550725f6f18e77b6863cd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest import clients"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ImageMembersTests(base.BaseV1ImageTest):"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1Lk%3D","line":23,"updated":"2013-09-18 15:32:37.000000000","message":"should be one more blank line","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"c07aee6043872ebfd433dbf7f5f0505ddf5a46bc","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_add_member_with_invalid_image(self):"},{"line_number":90,"context_line":"        #Add member with invalid image."},{"line_number":91,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":92,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.add_member, self.tenants[0],  non_exist_image)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":95,"context_line":"    def test_delete_member_with_invalid_image(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1LA%3D","line":92,"updated":"2013-09-18 15:38:21.000000000","message":"1. Line too long  (105 \u003e 79 characters)\n2. multiple spaces after \u0027,\u0027","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"c07aee6043872ebfd433dbf7f5f0505ddf5a46bc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    def test_delete_member_with_invalid_image(self):"},{"line_number":96,"context_line":"        #Delete member with invalid image."},{"line_number":97,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":98,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_member, self.tenants[0],  non_exist_image)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":101,"context_line":"    def test_delete_member_with_invalid_tenant(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1Kw%3D","line":98,"updated":"2013-09-18 15:38:21.000000000","message":"1. line too long 2.  multiple spaces after \u0027,\u0027","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"3440cd4ad244eedb675550725f6f18e77b6863cd","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        #Delete member with invalid tenant."},{"line_number":103,"context_line":"        image_id \u003d self._create_image()"},{"line_number":104,"context_line":"        non_exist_tenant \u003d rand_name(\u0027tenant_\u0027)"},{"line_number":105,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_member, non_exist_tenant, image_id)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":108,"context_line":"    def test_delete_member_with_invalid_tenant_and_invalid_image(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1Ko%3D","line":105,"updated":"2013-09-18 15:32:37.000000000","message":"line too long","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"3440cd4ad244eedb675550725f6f18e77b6863cd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        #Delete member with invalid tenant and image."},{"line_number":110,"context_line":"        non_exist_tenant \u003d rand_name(\u0027tenant_\u0027)"},{"line_number":111,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":112,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_member, non_exist_tenant, non_exist_image)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":115,"context_line":"    def test_add_member_with_invalid_tenant_and_invalid_image(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1Kg%3D","line":112,"updated":"2013-09-18 15:32:37.000000000","message":"line too long","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"3440cd4ad244eedb675550725f6f18e77b6863cd","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        #Add member with invalid tenant and image."},{"line_number":117,"context_line":"        non_exist_tenant \u003d rand_name(\u0027tenant_\u0027)"},{"line_number":118,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":119,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.add_member, non_exist_tenant, non_exist_image)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1KU%3D","line":119,"updated":"2013-09-18 15:32:37.000000000","message":"line too long","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"3440cd4ad244eedb675550725f6f18e77b6863cd","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        non_exist_tenant \u003d rand_name(\u0027tenant_\u0027)"},{"line_number":118,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":119,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.add_member, non_exist_tenant, non_exist_image)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2F1K0%3D","line":120,"updated":"2013-09-18 15:32:37.000000000","message":"blank line at end of file","commit_id":"29c06ec7f037809fe9932832197fb5b43131c247"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"73b05e280057c57918d3bd915389d99aeb387a2a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest import clients"},{"line_number":21,"context_line":"from tempest import exceptions"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ImageMembersTests(base.BaseV1ImageTest):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2Fy9c%3D","line":23,"updated":"2013-09-19 04:17:32.000000000","message":"Not in alphabetical order","commit_id":"b80549334f12499d9438ec79883855f1ca8d90d7"},{"author":{"_account_id":8072,"name":"Saurabh Chordiya","email":"schordiya@vmware.com","username":"saurabh"},"change_message_id":"fa19bf4820d6f5b669fc3bd6cfa5889afb19eb2f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        #Add member with invalid image."},{"line_number":92,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":93,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.add_member,"},{"line_number":94,"context_line":"                          self.tenants[0],  non_exist_image)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":97,"context_line":"    def test_delete_member_with_invalid_image(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2Fy%2Bc%3D","line":94,"updated":"2013-09-19 04:14:19.000000000","message":"Again multiple spaces after \u0027,\u0027","commit_id":"b80549334f12499d9438ec79883855f1ca8d90d7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a55c3a17a48c8cb9c9bf8184d29d74f4c278e0d5","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                          self.tenants[0], non_exist_image)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":97,"context_line":"    def test_add_member_with_invalid_tenant_and_invalid_image(self):"},{"line_number":98,"context_line":"        #Add member with invalid tenant and image."},{"line_number":99,"context_line":"        non_exist_tenant \u003d rand_name(\u0027tenant_\u0027)"},{"line_number":100,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2Fv6U%3D","line":97,"updated":"2013-09-20 01:11:35.000000000","message":"We cannot distinguish the reason easily if this test case fails because there are two invalid parameters.\n\nI guess that you have added this test case with two invalid parameters because current image API cannot validate invalid tenant. so the reason of the following NotFound is only invalid image. That is the same as test_add_member_with_invalid_image().\n\nI\u0027m not sure this test case is necessary.","commit_id":"fc2695ae5acf149193ab958bee4933d98808bf5d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a55c3a17a48c8cb9c9bf8184d29d74f4c278e0d5","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                          non_exist_tenant, image_id)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":120,"context_line":"    def test_delete_member_with_invalid_tenant_and_invalid_image(self):"},{"line_number":121,"context_line":"        #Delete member with invalid tenant and image."},{"line_number":122,"context_line":"        non_exist_tenant \u003d rand_name(\u0027tenant_\u0027)"},{"line_number":123,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2Fv6Q%3D","line":120,"updated":"2013-09-20 01:11:35.000000000","message":"ditto","commit_id":"fc2695ae5acf149193ab958bee4933d98808bf5d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"10e79ac02b74da4eafb77923faf1481a7cf80c1a","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":90,"context_line":"    def test_add_member_with_invalid_image(self):"},{"line_number":91,"context_line":"        #Adds member with invalid image."},{"line_number":92,"context_line":"        non_exist_image \u003d rand_name(\u0027image_\u0027)"},{"line_number":93,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.add_member,"},{"line_number":94,"context_line":"                          self.tenants[0], non_exist_image)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAS3%2F%2Fqao%3D","line":91,"updated":"2013-09-23 06:28:43.000000000","message":"# space\n\ntest_add_member_with_non_existing_image","commit_id":"538f7b0dc6c1e44410f72a5eeede817d591dda3e"}]}
