)]}'
{"tempest/services/compute/json/server_groups_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0bcc38f542e07d02fe790e21cbf860a73f494f72","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_serialization import jsonutils as json"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api_schema.response.compute.v2_1 import servers as schema"},{"line_number":20,"context_line":"from tempest.common import service_client"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_8cdd7344","line":17,"updated":"2015-09-03 08:41:42.000000000","message":"Let\u0027s wait for https://review.openstack.org/#/c/219518/ instead of doing in this patch","commit_id":"2f71303800e9e3165736c7665677c4a2f54a60c6"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"e3eab398dc23ca00412fcb22dc02e858084bef73","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_serialization import jsonutils as json"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from tempest.api_schema.response.compute.v2_1 import servers as schema"},{"line_number":20,"context_line":"from tempest.common import service_client"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_f3b046ff","line":17,"in_reply_to":"da20952f_8cdd7344","updated":"2015-09-04 18:25:33.000000000","message":"Done","commit_id":"2f71303800e9e3165736c7665677c4a2f54a60c6"}],"tempest/tests/services/compute/test_server_groups_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0bcc38f542e07d02fe790e21cbf860a73f494f72","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \"name\": \"test\","},{"line_number":37,"context_line":"            \"policies\": [\"anti-affinity\"],"},{"line_number":38,"context_line":"            \"members\": [],"},{"line_number":39,"context_line":"            \"metadata\": {}}}"},{"line_number":40,"context_line":"        body \u003d json.dumps(expected)"},{"line_number":41,"context_line":"        if bytes_body:"},{"line_number":42,"context_line":"            body \u003d body.encode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_ccba8be1","line":39,"updated":"2015-09-03 08:41:42.000000000","message":"How about making it up in class and use the same in show and list tests also.","commit_id":"2f71303800e9e3165736c7665677c4a2f54a60c6"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"e3eab398dc23ca00412fcb22dc02e858084bef73","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \"name\": \"test\","},{"line_number":37,"context_line":"            \"policies\": [\"anti-affinity\"],"},{"line_number":38,"context_line":"            \"members\": [],"},{"line_number":39,"context_line":"            \"metadata\": {}}}"},{"line_number":40,"context_line":"        body \u003d json.dumps(expected)"},{"line_number":41,"context_line":"        if bytes_body:"},{"line_number":42,"context_line":"            body \u003d body.encode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_d3cc228b","line":39,"in_reply_to":"da20952f_ccba8be1","updated":"2015-09-04 18:25:33.000000000","message":"Done","commit_id":"2f71303800e9e3165736c7665677c4a2f54a60c6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"0bcc38f542e07d02fe790e21cbf860a73f494f72","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.client.delete_server_group(\u0027fake-group\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _test_list_server_groups(self, bytes_body\u003dFalse):"},{"line_number":64,"context_line":"        expected \u003d {\"server_groups\": []}"},{"line_number":65,"context_line":"        body \u003d json.dumps(expected)"},{"line_number":66,"context_line":"        if bytes_body:"},{"line_number":67,"context_line":"            body \u003d body.encode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_0cf2c3d2","line":64,"updated":"2015-09-03 08:41:42.000000000","message":"test with some response instead of empty list","commit_id":"2f71303800e9e3165736c7665677c4a2f54a60c6"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"e3eab398dc23ca00412fcb22dc02e858084bef73","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.client.delete_server_group(\u0027fake-group\u0027)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _test_list_server_groups(self, bytes_body\u003dFalse):"},{"line_number":64,"context_line":"        expected \u003d {\"server_groups\": []}"},{"line_number":65,"context_line":"        body \u003d json.dumps(expected)"},{"line_number":66,"context_line":"        if bytes_body:"},{"line_number":67,"context_line":"            body \u003d body.encode(\u0027utf-8\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_73c5165a","line":64,"in_reply_to":"da20952f_0cf2c3d2","updated":"2015-09-04 18:25:33.000000000","message":"Done","commit_id":"2f71303800e9e3165736c7665677c4a2f54a60c6"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"daad0ffbc7075184c2ee19c5e9020d1e3cbfb086","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \u0027tempest.common.service_client.ServiceClient.post\u0027,"},{"line_number":48,"context_line":"            return_value\u003dresponse))"},{"line_number":49,"context_line":"        self.assertEqual(expected, self.client.create_server_group("},{"line_number":50,"context_line":"            \u0027fake-group\u0027, [\u0027affinity\u0027]))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_create_server_group_str_body(self):"},{"line_number":53,"context_line":"        self._test_create_server_group(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_741dd871","line":50,"updated":"2015-09-07 06:31:27.000000000","message":"Duplicate code with other tests","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"7645708a6bb795fe51e9a4df688ba4ff876af35b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \u0027tempest.common.service_client.ServiceClient.post\u0027,"},{"line_number":48,"context_line":"            return_value\u003dresponse))"},{"line_number":49,"context_line":"        self.assertEqual(expected, self.client.create_server_group("},{"line_number":50,"context_line":"            \u0027fake-group\u0027, [\u0027affinity\u0027]))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_create_server_group_str_body(self):"},{"line_number":53,"context_line":"        self._test_create_server_group(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_db113e06","line":50,"in_reply_to":"da20952f_741dd871","updated":"2015-09-08 13:26:43.000000000","message":"Can you elaborate on what is duplicate?  The only thing I see is that the \"assertEqual\" method is being called in all three cases.  Note that in the second argument I\u0027m calling the \"create_server_group\" method.  In the other code that has been flagged as duplicate, I\u0027m calling different methods on the client: client.list_server_groups and self.client.get_server_group.","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"c0d679e90a0f673151144d40cf7aece2c12dc3a6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \u0027tempest.common.service_client.ServiceClient.post\u0027,"},{"line_number":48,"context_line":"            return_value\u003dresponse))"},{"line_number":49,"context_line":"        self.assertEqual(expected, self.client.create_server_group("},{"line_number":50,"context_line":"            \u0027fake-group\u0027, [\u0027affinity\u0027]))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_create_server_group_str_body(self):"},{"line_number":53,"context_line":"        self._test_create_server_group(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_fbc3b055","line":50,"in_reply_to":"da20952f_741dd871","updated":"2015-09-09 13:17:00.000000000","message":"Done","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"758fc6fd05797369d5fbd902d244f8d15f41e167","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            \u0027tempest.common.service_client.ServiceClient.post\u0027,"},{"line_number":48,"context_line":"            return_value\u003dresponse))"},{"line_number":49,"context_line":"        self.assertEqual(expected, self.client.create_server_group("},{"line_number":50,"context_line":"            \u0027fake-group\u0027, [\u0027affinity\u0027]))"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_create_server_group_str_body(self):"},{"line_number":53,"context_line":"        self._test_create_server_group(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_9b8426b2","line":50,"in_reply_to":"da20952f_db113e06","updated":"2015-09-08 13:32:10.000000000","message":"Please have a look to https://review.openstack.org/#/c/220152/3. You can specify the function, body and function to mock by using self.check_service_client_function().","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"daad0ffbc7075184c2ee19c5e9020d1e3cbfb086","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":72,"context_line":"            \u0027tempest.common.service_client.ServiceClient.get\u0027,"},{"line_number":73,"context_line":"            return_value\u003dresponse))"},{"line_number":74,"context_line":"        self.assertEqual(expected, self.client.list_server_groups())"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_list_server_groups_str_body(self):"},{"line_number":77,"context_line":"        self._test_list_server_groups(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_d40e243a","line":74,"updated":"2015-09-07 06:31:27.000000000","message":"Duplicate code with other tests","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"c0d679e90a0f673151144d40cf7aece2c12dc3a6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":72,"context_line":"            \u0027tempest.common.service_client.ServiceClient.get\u0027,"},{"line_number":73,"context_line":"            return_value\u003dresponse))"},{"line_number":74,"context_line":"        self.assertEqual(expected, self.client.list_server_groups())"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_list_server_groups_str_body(self):"},{"line_number":77,"context_line":"        self._test_list_server_groups(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_bba458b9","line":74,"in_reply_to":"da20952f_d40e243a","updated":"2015-09-09 13:17:00.000000000","message":"Done","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"daad0ffbc7075184c2ee19c5e9020d1e3cbfb086","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            \u0027tempest.common.service_client.ServiceClient.get\u0027,"},{"line_number":90,"context_line":"            return_value\u003dresponse))"},{"line_number":91,"context_line":"        self.assertEqual(expected, self.client.get_server_group("},{"line_number":92,"context_line":"            \u00275bbcc3c4-1da2-4437-a48a-66f15b1b13f9\u0027))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_server_group_str_body(self):"},{"line_number":95,"context_line":"        self._test_get_server_group(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_3413e066","line":92,"updated":"2015-09-07 06:31:27.000000000","message":"Duplicate code with other tests","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"c0d679e90a0f673151144d40cf7aece2c12dc3a6","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            \u0027tempest.common.service_client.ServiceClient.get\u0027,"},{"line_number":90,"context_line":"            return_value\u003dresponse))"},{"line_number":91,"context_line":"        self.assertEqual(expected, self.client.get_server_group("},{"line_number":92,"context_line":"            \u00275bbcc3c4-1da2-4437-a48a-66f15b1b13f9\u0027))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_get_server_group_str_body(self):"},{"line_number":95,"context_line":"        self._test_get_server_group(bytes_body\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_1b946442","line":92,"in_reply_to":"da20952f_3413e066","updated":"2015-09-09 13:17:00.000000000","message":"Done","commit_id":"f553a752e0c6f409cd3acb0d4987cb8d40846969"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"3c4eaf64cb76f3ff6726a0886b913381dbb1ce23","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        response \u003d (httplib2.Response({\u0027status\u0027: 204}), None)"},{"line_number":54,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":55,"context_line":"            \u0027tempest.common.service_client.ServiceClient.delete\u0027,"},{"line_number":56,"context_line":"            return_value\u003dresponse))"},{"line_number":57,"context_line":"        self.client.delete_server_group(\u0027fake-group\u0027)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _test_list_server_groups(self, bytes_body\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_3ce310da","line":56,"updated":"2015-09-11 07:29:08.000000000","message":"this can also be reused from base class?","commit_id":"8074f0ab835696754c3f1c5fd12789a09456d313"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9aadcc58312be4591867b7a53213124d4a8b2dc5","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        response \u003d (httplib2.Response({\u0027status\u0027: 204}), None)"},{"line_number":54,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":55,"context_line":"            \u0027tempest.common.service_client.ServiceClient.delete\u0027,"},{"line_number":56,"context_line":"            return_value\u003dresponse))"},{"line_number":57,"context_line":"        self.client.delete_server_group(\u0027fake-group\u0027)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _test_list_server_groups(self, bytes_body\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_972b1782","line":56,"in_reply_to":"da20952f_3ce310da","updated":"2015-09-11 07:44:13.000000000","message":"Sorry, I am not sure this point.\nresponse is different between tests, so how to reuse this by putting it base class.\n\nMaybe that is cleanup thing, and I am fine to do that later.","commit_id":"8074f0ab835696754c3f1c5fd12789a09456d313"},{"author":{"_account_id":11278,"name":"Anusha Ramineni","email":"anusha.ramineni@india.nec.com","username":"anusha08"},"change_message_id":"3bbe743f9768f2ab4a67cd79df10a949d9db03a3","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        response \u003d (httplib2.Response({\u0027status\u0027: 204}), None)"},{"line_number":54,"context_line":"        self.useFixture(mockpatch.Patch("},{"line_number":55,"context_line":"            \u0027tempest.common.service_client.ServiceClient.delete\u0027,"},{"line_number":56,"context_line":"            return_value\u003dresponse))"},{"line_number":57,"context_line":"        self.client.delete_server_group(\u0027fake-group\u0027)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _test_list_server_groups(self, bytes_body\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_b7541b22","line":56,"in_reply_to":"da20952f_972b1782","updated":"2015-09-11 08:07:24.000000000","message":"no, I actually meant, base class function can be directly called like \n\nself.check_service_client_function(\n            self.client.delete_server_group,\n            \u0027tempest.common.service_client.ServiceClient.delete\u0027, \n             {}, status\u003d204, name\u003d\u0027\u0027fake-group\u0027)\n\ninstead of writing the whole function.","commit_id":"8074f0ab835696754c3f1c5fd12789a09456d313"}]}
