)]}'
{"tempest/common/rest_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"58af639a86b072e47b7f024ee4ed25aa3a889032","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    def delete(self, url, headers\u003dNone):"},{"line_number":183,"context_line":"        return self.request(\u0027DELETE\u0027, url, headers)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    #Partial updates are performed by HTTP PATCH method in Identity API V3"},{"line_number":186,"context_line":"    def patch(self, url, body, headers):"},{"line_number":187,"context_line":"        return self.request(\u0027PATCH\u0027, url, headers, body)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F%2FUA%3D","line":185,"updated":"2013-04-03 14:26:19.000000000","message":"I don\u0027t think this comment is necessary. Patch is part of http, and isn\u0027t exclusive for keystone v3. There are other uses in OpenStack, Glance v2 update for example, keystone just happens to be the first use of it in tempest.","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"3f95df2dc9fbe3b9b28222cb8eaf914287fea761","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    def delete(self, url, headers\u003dNone):"},{"line_number":183,"context_line":"        return self.request(\u0027DELETE\u0027, url, headers)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    #Partial updates are performed by HTTP PATCH method in Identity API V3"},{"line_number":186,"context_line":"    def patch(self, url, body, headers):"},{"line_number":187,"context_line":"        return self.request(\u0027PATCH\u0027, url, headers, body)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F96A%3D","line":185,"in_reply_to":"AAAAOX%2F%2F%2FUA%3D","updated":"2013-04-04 06:28:59.000000000","message":"Done","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"58af639a86b072e47b7f024ee4ed25aa3a889032","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def response_checker(self, method, url, headers, body, resp, resp_body):"},{"line_number":242,"context_line":"        if (resp.status in set((204, 205, 304)) or resp.status \u003c 200 or"},{"line_number":243,"context_line":"                method.upper() \u003d\u003d \u0027HEAD\u0027) and resp_body:"},{"line_number":244,"context_line":"            raise exceptions.ResponseWithNonEmptyBody(status\u003dresp.status)"},{"line_number":245,"context_line":"        #NOTE(afazekas):"},{"line_number":246,"context_line":"        # If the HTTP Status Code is 205"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F%2FTo%3D","line":243,"updated":"2013-04-03 14:26:19.000000000","message":"Does this change have something todo with the v3 api? It looks like an unrelated whitespace change, can you pull this out while you have to make other revisions.","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"3f95df2dc9fbe3b9b28222cb8eaf914287fea761","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    def response_checker(self, method, url, headers, body, resp, resp_body):"},{"line_number":242,"context_line":"        if (resp.status in set((204, 205, 304)) or resp.status \u003c 200 or"},{"line_number":243,"context_line":"                method.upper() \u003d\u003d \u0027HEAD\u0027) and resp_body:"},{"line_number":244,"context_line":"            raise exceptions.ResponseWithNonEmptyBody(status\u003dresp.status)"},{"line_number":245,"context_line":"        #NOTE(afazekas):"},{"line_number":246,"context_line":"        # If the HTTP Status Code is 205"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F96E%3D","line":243,"in_reply_to":"AAAAOX%2F%2F%2FTo%3D","updated":"2013-04-04 06:28:59.000000000","message":"Done","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"}],"tempest/services/identity/json/endpoints_client.py":[{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"8e3b05a1515f57cd368f11d652e9a8f58651534e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Delete endpoint.\"\"\""},{"line_number":76,"context_line":"        self.delete(\u0027endpoints/%s\u0027 % endpoint_id)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def wait_for_endpoint_create(self, endpoint_id):"},{"line_number":79,"context_line":"        \"Wait till the endpoint is found in the list of endpoints.\"\"\""},{"line_number":80,"context_line":"        resp, fetched_endpoints \u003d self.list_endpoints()"},{"line_number":81,"context_line":"        for e in fetched_endpoints:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B0Xg%3D","line":78,"updated":"2013-02-18 18:04:21.000000000","message":"As was already mention this is probably unnecessary, otherwise there should be some \u0027timeout\u0027 check (like time_now - started_at etc), otherwise on server failure we will get stuck here (+ unnecessary recursion as also noted by David).","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":2238,"name":"rajalakshmi-ganesan","email":"rajalakshmi.girish@hpe.com","username":"rajalakshmi-ganesan"},"change_message_id":"9626a06ef8c7a595c82c1bc3202fb24830b9588b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Delete endpoint.\"\"\""},{"line_number":76,"context_line":"        self.delete(\u0027endpoints/%s\u0027 % endpoint_id)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def wait_for_endpoint_create(self, endpoint_id):"},{"line_number":79,"context_line":"        \"Wait till the endpoint is found in the list of endpoints.\"\"\""},{"line_number":80,"context_line":"        resp, fetched_endpoints \u003d self.list_endpoints()"},{"line_number":81,"context_line":"        for e in fetched_endpoints:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BvLA%3D","line":78,"in_reply_to":"AAAAM3%2F%2B0Xg%3D","updated":"2013-02-20 10:11:24.000000000","message":"Done","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"}],"tempest/services/identity/v3/json/endpoints_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"58af639a86b072e47b7f024ee4ed25aa3a889032","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from tempest.common.rest_client import RestClient"},{"line_number":21,"context_line":"from urlparse import urlparse"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class EndPointClientJSON(RestClient):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F%2FSo%3D","line":21,"updated":"2013-04-03 14:26:19.000000000","message":"I believe urlparse is part of python stdlib(not tempest or a 3rd party module). So it should be in the same block as json above. Take a look at the template for imports in HACKING.rst","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"3f95df2dc9fbe3b9b28222cb8eaf914287fea761","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from tempest.common.rest_client import RestClient"},{"line_number":21,"context_line":"from urlparse import urlparse"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class EndPointClientJSON(RestClient):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F958%3D","line":21,"in_reply_to":"AAAAOX%2F%2F%2FSo%3D","updated":"2013-04-04 06:28:59.000000000","message":"Done","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"}],"tempest/services/identity/v3/xml/endpoints_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"58af639a86b072e47b7f024ee4ed25aa3a889032","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest.services.compute.xml.common import Document"},{"line_number":22,"context_line":"from tempest.services.compute.xml.common import Element"},{"line_number":23,"context_line":"from tempest.services.compute.xml.common import xml_to_json"},{"line_number":24,"context_line":"from urlparse import urlparse"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"XMLNS \u003d \"http://docs.openstack.org/identity/api/v3\""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F%2FRQ%3D","line":24,"updated":"2013-04-03 14:26:19.000000000","message":"Same import ordering as in the other client. urlparse is in python and lxml and httplib2 are 3rd party. These should be separate blocks import blocks.","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"3f95df2dc9fbe3b9b28222cb8eaf914287fea761","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest.services.compute.xml.common import Document"},{"line_number":22,"context_line":"from tempest.services.compute.xml.common import Element"},{"line_number":23,"context_line":"from tempest.services.compute.xml.common import xml_to_json"},{"line_number":24,"context_line":"from urlparse import urlparse"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"XMLNS \u003d \"http://docs.openstack.org/identity/api/v3\""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOX%2F%2F954%3D","line":24,"in_reply_to":"AAAAOX%2F%2F%2FRQ%3D","updated":"2013-04-04 06:28:59.000000000","message":"Done","commit_id":"ddfc06482c221ffacd145b4b4b0fc4525e606ca7"}],"tempest/services/identity/xml/endpoints_client.py":[{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"8e3b05a1515f57cd368f11d652e9a8f58651534e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        resp, body \u003d self.post(\u0027endpoints\u0027, str(Document(create_endpoint)),"},{"line_number":64,"context_line":"                               self.headers)"},{"line_number":65,"context_line":"        body \u003d self._parse_body(etree.fromstring(body))"},{"line_number":66,"context_line":"        return resp, body"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def update_endpoint(self, endpoint_id, service_id\u003dNone, interface\u003dNone,"},{"line_number":69,"context_line":"                        url\u003dNone, region\u003dNone, enabled\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B0LI%3D","line":66,"updated":"2013-02-18 18:04:21.000000000","message":"Did not you missed body[\u0027endpoints\u0027] here? At least like other clients do it. (You should get {\u0027endpoint\u0027:{\u0027id\u0027:...}} dict from here i think. And same for most/all of the other client/methods in this changeset.","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":2238,"name":"rajalakshmi-ganesan","email":"rajalakshmi.girish@hpe.com","username":"rajalakshmi-ganesan"},"change_message_id":"9626a06ef8c7a595c82c1bc3202fb24830b9588b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        resp, body \u003d self.post(\u0027endpoints\u0027, str(Document(create_endpoint)),"},{"line_number":64,"context_line":"                               self.headers)"},{"line_number":65,"context_line":"        body \u003d self._parse_body(etree.fromstring(body))"},{"line_number":66,"context_line":"        return resp, body"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def update_endpoint(self, endpoint_id, service_id\u003dNone, interface\u003dNone,"},{"line_number":69,"context_line":"                        url\u003dNone, region\u003dNone, enabled\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BvLE%3D","line":66,"in_reply_to":"AAAAM3%2F%2B0LI%3D","updated":"2013-02-20 10:11:24.000000000","message":"When the response body is sent for parsing from xml_to_json, the first tag is removed. Thus in all the XML clients, we return the response bodies directly instead of returning body[\u0027server\u0027], body[\u0027image\u0027], body[\u0027endpoint\u0027] .. e.t.c.. Please refer other XML client files that already exists.","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"}],"tempest/tests/identity/admin/test_endpoints.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"2efde868d8eeda5810028a9c3a70d2eff7810ef3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    @classmethod"},{"line_number":144,"context_line":"    def setUpClass(cls):"},{"line_number":145,"context_line":"        base.BaseIdentityAdminTestJSON.setUpClass()"},{"line_number":146,"context_line":"        super(EndPointsTestJSON, cls).setUpClass()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    @classmethod"},{"line_number":149,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B2F4%3D","line":146,"updated":"2013-02-17 11:45:14.000000000","message":"Code duplication","commit_id":"14f56b56667d9cb8c117534b1ea8596d1b142f96"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"8e3b05a1515f57cd368f11d652e9a8f58651534e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                    cls.client.create_endpoint(cls.service_id, interface, url,"},{"line_number":48,"context_line":"                                               region\u003dregion, enabled\u003dTrue)"},{"line_number":49,"context_line":"                cls.setup_endpoints.append(endpoint)"},{"line_number":50,"context_line":"                cls.client.wait_for_endpoint_create(endpoint[\u0027id\u0027])"},{"line_number":51,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":52,"context_line":"                raise cls.skipException(\"Endpoints resource is not as\""},{"line_number":53,"context_line":"                                        \" per Keystone V3 API\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B0Sw%3D","line":50,"updated":"2013-02-18 18:04:21.000000000","message":"As was already mentiond waiting looks unnecessary, but if it is required down in the test_create_delete_endpoint there is no waiting.","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":2238,"name":"rajalakshmi-ganesan","email":"rajalakshmi.girish@hpe.com","username":"rajalakshmi-ganesan"},"change_message_id":"9626a06ef8c7a595c82c1bc3202fb24830b9588b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                    cls.client.create_endpoint(cls.service_id, interface, url,"},{"line_number":48,"context_line":"                                               region\u003dregion, enabled\u003dTrue)"},{"line_number":49,"context_line":"                cls.setup_endpoints.append(endpoint)"},{"line_number":50,"context_line":"                cls.client.wait_for_endpoint_create(endpoint[\u0027id\u0027])"},{"line_number":51,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":52,"context_line":"                raise cls.skipException(\"Endpoints resource is not as\""},{"line_number":53,"context_line":"                                        \" per Keystone V3 API\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BvO8%3D","line":50,"in_reply_to":"AAAAM3%2F%2B0Sw%3D","updated":"2013-02-20 10:11:24.000000000","message":"Done","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"8e3b05a1515f57cd368f11d652e9a8f58651534e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        resp, fetched_endpoints \u003d self.client.list_endpoints()"},{"line_number":66,"context_line":"        #Asserting LIST Endpoint"},{"line_number":67,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027200\u0027)"},{"line_number":68,"context_line":"        for e in self.setup_endpoints:"},{"line_number":69,"context_line":"            missing_endpoints \u003d\\"},{"line_number":70,"context_line":"                [e for e in self.setup_endpoints if e not in fetched_endpoints]"},{"line_number":71,"context_line":"        self.assertEqual(0, len(missing_endpoints),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B0WY%3D","line":68,"updated":"2013-02-18 18:04:21.000000000","message":"Looks like this \u0027for e in setup_endpoints\u0027 is here by mistake? Following comprehension should be, imho, enough.","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":2238,"name":"rajalakshmi-ganesan","email":"rajalakshmi.girish@hpe.com","username":"rajalakshmi-ganesan"},"change_message_id":"9626a06ef8c7a595c82c1bc3202fb24830b9588b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        resp, fetched_endpoints \u003d self.client.list_endpoints()"},{"line_number":66,"context_line":"        #Asserting LIST Endpoint"},{"line_number":67,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027200\u0027)"},{"line_number":68,"context_line":"        for e in self.setup_endpoints:"},{"line_number":69,"context_line":"            missing_endpoints \u003d\\"},{"line_number":70,"context_line":"                [e for e in self.setup_endpoints if e not in fetched_endpoints]"},{"line_number":71,"context_line":"        self.assertEqual(0, len(missing_endpoints),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BvO0%3D","line":68,"in_reply_to":"AAAAM3%2F%2B0WY%3D","updated":"2013-02-20 10:11:24.000000000","message":"Done","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"8e3b05a1515f57cd368f11d652e9a8f58651534e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027200\u0027)"},{"line_number":68,"context_line":"        for e in self.setup_endpoints:"},{"line_number":69,"context_line":"            missing_endpoints \u003d\\"},{"line_number":70,"context_line":"                [e for e in self.setup_endpoints if e not in fetched_endpoints]"},{"line_number":71,"context_line":"        self.assertEqual(0, len(missing_endpoints),"},{"line_number":72,"context_line":"                         \"Failed to find endpoint %s in fetched list\" %"},{"line_number":73,"context_line":"                         \u0027, \u0027.join(e for e in missing_endpoints))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B0Pw%3D","line":70,"updated":"2013-02-18 18:04:21.000000000","message":"Not sure but is it possible this will fail in different test execution order? Like when test_update_endpoint will run before test_list_endpoints and the first endpoint in setup_endpoints will have different url/service/etc. And not sure if we can or cannot rely on test order actually, but if not the update test should create it\u0027s own endpoint probably?","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"},{"author":{"_account_id":2238,"name":"rajalakshmi-ganesan","email":"rajalakshmi.girish@hpe.com","username":"rajalakshmi-ganesan"},"change_message_id":"9626a06ef8c7a595c82c1bc3202fb24830b9588b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027200\u0027)"},{"line_number":68,"context_line":"        for e in self.setup_endpoints:"},{"line_number":69,"context_line":"            missing_endpoints \u003d\\"},{"line_number":70,"context_line":"                [e for e in self.setup_endpoints if e not in fetched_endpoints]"},{"line_number":71,"context_line":"        self.assertEqual(0, len(missing_endpoints),"},{"line_number":72,"context_line":"                         \"Failed to find endpoint %s in fetched list\" %"},{"line_number":73,"context_line":"                         \u0027, \u0027.join(e for e in missing_endpoints))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BvLw%3D","line":70,"in_reply_to":"AAAAM3%2F%2B0Pw%3D","updated":"2013-02-20 10:11:24.000000000","message":"Yes Pavel you were right. This test failed if I run this after update test. Hence I created it\u0027s own endpoint for update test.\n\n- Thankyou","commit_id":"4b01b62372852deebdc0c1bf4e582d2745c2d0b1"}],"tempest/tests/identity/admin/v3/test_endpoints.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"9c414809816215a4bdc00c4cad1b1017eaeedafe","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                    cls.client.create_endpoint(cls.service_id, interface, url,"},{"line_number":50,"context_line":"                                               region\u003dregion, enabled\u003dTrue)"},{"line_number":51,"context_line":"                cls.setup_endpoints.append(endpoint)"},{"line_number":52,"context_line":"            except exceptions.BadRequest as e:"},{"line_number":53,"context_line":"                raise cls.skipException(\"Endpoints resource is not as\""},{"line_number":54,"context_line":"                                        \" per Keystone V3 API\")"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2F5X0%3D","line":52,"updated":"2013-03-21 19:48:20.000000000","message":"we want to be out of the business of auto skipping tests, because if keystone goes down in the gate this won\u0027t find it.","commit_id":"4a54858376eb4067bf5949f787e96cd9587af4e0"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"5224371780130957a28dec97dde77798fe1ffbe3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        s_description \u003d rand_name(\u0027description-\u0027)"},{"line_number":35,"context_line":"        resp, cls.service_data \u003d\\"},{"line_number":36,"context_line":"            cls.identity_client.create_service(s_name, s_type,"},{"line_number":37,"context_line":"                                               description\u003ds_description)"},{"line_number":38,"context_line":"        cls.service_id \u003d cls.service_data[\u0027id\u0027]"},{"line_number":39,"context_line":"        cls.service_ids.append(cls.service_id)"},{"line_number":40,"context_line":"        #Create endpoints so as to use for LIST and GET test cases"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOH%2F%2Fs8g%3D","line":37,"updated":"2013-04-02 12:39:15.000000000","message":"Might need to think about cleanup of createservice if an exception is raised in setupClass after this point as tearDownClass won\u0027t be called","commit_id":"84861bdd27db04872f734710044560cebf1fecfc"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"026394abf9e99d34a01d70d21c0aa8afdcee256e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        s_description \u003d rand_name(\u0027description-\u0027)"},{"line_number":35,"context_line":"        resp, cls.service_data \u003d\\"},{"line_number":36,"context_line":"            cls.identity_client.create_service(s_name, s_type,"},{"line_number":37,"context_line":"                                               description\u003ds_description)"},{"line_number":38,"context_line":"        cls.service_id \u003d cls.service_data[\u0027id\u0027]"},{"line_number":39,"context_line":"        cls.service_ids.append(cls.service_id)"},{"line_number":40,"context_line":"        #Create endpoints so as to use for LIST and GET test cases"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOX%2F%2F%2Fe8%3D","line":37,"in_reply_to":"AAAAOH%2F%2Fs8g%3D","updated":"2013-04-03 11:10:51.000000000","message":"The regular practice is the same in existing code. We consider that appropriate API calls are passed in the setUp class and also the required verification is done the test case.","commit_id":"84861bdd27db04872f734710044560cebf1fecfc"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"5224371780130957a28dec97dde77798fe1ffbe3","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        try:"},{"line_number":112,"context_line":"            #Creating an endpoint so as to check update endpoint"},{"line_number":113,"context_line":"            #with new values"},{"line_number":114,"context_line":"            create_flag \u003d False"},{"line_number":115,"context_line":"            region1 \u003d rand_name(\u0027region\u0027)"},{"line_number":116,"context_line":"            url1 \u003d rand_name(\u0027url\u0027)"},{"line_number":117,"context_line":"            interface1 \u003d \u0027public\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOH%2F%2Fs8o%3D","line":114,"updated":"2013-04-02 12:39:15.000000000","message":"rather than use create_flag and finally perhaps better to use addCleanup?","commit_id":"84861bdd27db04872f734710044560cebf1fecfc"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"026394abf9e99d34a01d70d21c0aa8afdcee256e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        try:"},{"line_number":112,"context_line":"            #Creating an endpoint so as to check update endpoint"},{"line_number":113,"context_line":"            #with new values"},{"line_number":114,"context_line":"            create_flag \u003d False"},{"line_number":115,"context_line":"            region1 \u003d rand_name(\u0027region\u0027)"},{"line_number":116,"context_line":"            url1 \u003d rand_name(\u0027url\u0027)"},{"line_number":117,"context_line":"            interface1 \u003d \u0027public\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAOX%2F%2F%2Fe0%3D","line":114,"in_reply_to":"AAAAOH%2F%2Fs8o%3D","updated":"2013-04-03 11:10:51.000000000","message":"Sure.","commit_id":"84861bdd27db04872f734710044560cebf1fecfc"}]}
