)]}'
{"keystone/tests/functional/federation/test_v3_crud.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"899b6ce791e082ddc683be2ea3ea5449b4a7fcb5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystone.tests.functional import core as functests"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"is_multiple_choices \u003d testtools.matchers.Equals("},{"line_number":21,"context_line":"    requests.status_codes.codes.multiple_choices)"},{"line_number":22,"context_line":"is_ok \u003d testtools.matchers.Equals(requests.status_codes.codes.ok)"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_f3eff684","line":20,"updated":"2015-07-22 12:24:20.000000000","message":"not used anywhere","commit_id":"f8a0da13ff8841e74893371b83e79bb3d36e219c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"899b6ce791e082ddc683be2ea3ea5449b4a7fcb5","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"is_multiple_choices \u003d testtools.matchers.Equals("},{"line_number":21,"context_line":"    requests.status_codes.codes.multiple_choices)"},{"line_number":22,"context_line":"is_ok \u003d testtools.matchers.Equals(requests.status_codes.codes.ok)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"versions \u003d (\u0027v3\u0027)"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_73dd26df","line":22,"updated":"2015-07-22 12:24:20.000000000","message":"not used anywhere","commit_id":"f8a0da13ff8841e74893371b83e79bb3d36e219c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"899b6ce791e082ddc683be2ea3ea5449b4a7fcb5","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    requests.status_codes.codes.multiple_choices)"},{"line_number":22,"context_line":"is_ok \u003d testtools.matchers.Equals(requests.status_codes.codes.ok)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"versions \u003d (\u0027v3\u0027)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestIdentityProvider(functests.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_33f0fe90","line":24,"updated":"2015-07-22 12:24:20.000000000","message":"need a comma after v3","commit_id":"f8a0da13ff8841e74893371b83e79bb3d36e219c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"899b6ce791e082ddc683be2ea3ea5449b4a7fcb5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        r \u003d requests.put(idp_url, headers\u003dself.headers,"},{"line_number":101,"context_line":"                         json\u003d{\u0027identity_provider\u0027: {}})"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        self.assertEqual(True, r.ok)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def test_rud_nonexistent_idp(self):"},{"line_number":106,"context_line":"        \"\"\"Test Identity Provider CRUD operations on non existing object."}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_131942d7","line":103,"updated":"2015-07-22 12:24:20.000000000","message":"we have is_ok for this kind of assertions, don\u0027t we?","commit_id":"f8a0da13ff8841e74893371b83e79bb3d36e219c"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"899b6ce791e082ddc683be2ea3ea5449b4a7fcb5","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        self.assertEqual(True, r.ok)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def test_rud_nonexistent_idp(self):"},{"line_number":106,"context_line":"        \"\"\"Test Identity Provider CRUD operations on non existing object."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        Make sure Keystone correctly responds with HTTP 404 error."},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_d3851acf","line":106,"updated":"2015-07-22 12:24:20.000000000","message":"CRUD or RUD? Test name says rud","commit_id":"f8a0da13ff8841e74893371b83e79bb3d36e219c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import requests"},{"line_number":14,"context_line":"import testtools.matchers"},{"line_number":15,"context_line":"import uuid"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from keystone.tests.functional import core as functests"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_0f865d13","line":14,"updated":"2015-10-29 06:45:01.000000000","message":"need blank line here to separate third party lib and python lib.\n\n import uuid\n\n import requests\n import testtools.matchers","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"e5cae5c3e5ce14be096bd6597135935f080ff9f7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import requests"},{"line_number":14,"context_line":"import testtools.matchers"},{"line_number":15,"context_line":"import uuid"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from keystone.tests.functional import core as functests"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_b021c64f","line":14,"in_reply_to":"1a26ad4f_0f865d13","updated":"2015-10-29 07:53:26.000000000","message":"Done","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            * enabled"},{"line_number":59,"context_line":"            * remote_idps"},{"line_number":60,"context_line":"        - Remove IdP"},{"line_number":61,"context_line":"        - Make sure IdP does no longer exist in Keystone"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        idp_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_2fbd5968","line":61,"updated":"2015-10-29 06:45:01.000000000","message":"better to use \u0027keystone\u0027 and in other places to follow the convention.","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"e5cae5c3e5ce14be096bd6597135935f080ff9f7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            * enabled"},{"line_number":59,"context_line":"            * remote_idps"},{"line_number":60,"context_line":"        - Remove IdP"},{"line_number":61,"context_line":"        - Make sure IdP does no longer exist in Keystone"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        \"\"\""},{"line_number":64,"context_line":"        idp_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_30d4d61e","line":61,"in_reply_to":"1a26ad4f_2fbd5968","updated":"2015-10-29 07:53:26.000000000","message":"Done","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertThat(r_get.status_code, is_ok)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # update IdP attributes"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        idp[\u0027description\u0027] \u003d uuid.uuid4().hex"},{"line_number":80,"context_line":"        idp[\u0027remote_ids\u0027] \u003d [uuid.uuid4().hex, uuid.uuid4().hex]"},{"line_number":81,"context_line":"        idp[\u0027enabled\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_8aeedbb2","line":78,"updated":"2015-10-29 06:45:01.000000000","message":"blank line is intentional? why L73 doesn\u0027t have a blank there? can we make it consistently?","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"e5cae5c3e5ce14be096bd6597135935f080ff9f7","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertThat(r_get.status_code, is_ok)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # update IdP attributes"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        idp[\u0027description\u0027] \u003d uuid.uuid4().hex"},{"line_number":80,"context_line":"        idp[\u0027remote_ids\u0027] \u003d [uuid.uuid4().hex, uuid.uuid4().hex]"},{"line_number":81,"context_line":"        idp[\u0027enabled\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_50be32d5","line":78,"in_reply_to":"1a26ad4f_8aeedbb2","updated":"2015-10-29 07:53:26.000000000","message":"blank line removed","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        idp[\u0027enabled\u0027] \u003d False"},{"line_number":82,"context_line":"        r_update \u003d requests.patch(idp_url, headers\u003dself.headers,"},{"line_number":83,"context_line":"                                  json\u003d{\u0027identity_provider\u0027: idp})"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertThat(r_update.status_code, is_ok)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # delete IdP"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_2a1307ba","line":84,"updated":"2015-10-29 06:45:01.000000000","message":"better to get the idp back and assert desc, enabled, remoted_ids is updated indeed.","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"4cf2c9866505f7c487b95b01480dadfb485c3d2f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        idp[\u0027enabled\u0027] \u003d False"},{"line_number":82,"context_line":"        r_update \u003d requests.patch(idp_url, headers\u003dself.headers,"},{"line_number":83,"context_line":"                                  json\u003d{\u0027identity_provider\u0027: idp})"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        self.assertThat(r_update.status_code, is_ok)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # delete IdP"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa80f949_6a459fb1","line":84,"in_reply_to":"1a26ad4f_2a1307ba","updated":"2015-11-04 15:59:45.000000000","message":"Done","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertThat(r_get.status_code, is_not_found)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_create_idp_default_values(self):"},{"line_number":97,"context_line":"        \"\"\"Try to create IdP without explicitely setting parameters.\"\"\""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        idp_id \u003d uuid.uuid4().hex"},{"line_number":100,"context_line":"        idp_url \u003d self._idp_url(idp_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_8a1c9bc2","line":97,"updated":"2015-10-29 06:45:01.000000000","message":"nit: s/explicitely/explicitly","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"e5cae5c3e5ce14be096bd6597135935f080ff9f7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertThat(r_get.status_code, is_not_found)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_create_idp_default_values(self):"},{"line_number":97,"context_line":"        \"\"\"Try to create IdP without explicitely setting parameters.\"\"\""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        idp_id \u003d uuid.uuid4().hex"},{"line_number":100,"context_line":"        idp_url \u003d self._idp_url(idp_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_10b8bae4","line":97,"in_reply_to":"1a26ad4f_8a1c9bc2","updated":"2015-10-29 07:53:26.000000000","message":"Done","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        \"\"\"Try creating Identity Provider with malformed request.\"\"\""},{"line_number":134,"context_line":"        idp_url \u003d self._idp_url(uuid.uuid4().hex)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        idp \u003d {uuid.uuid4().hex: uuid.uuid4().hex for x in range(4)}"},{"line_number":137,"context_line":"        r \u003d requests.put(idp_url, headers\u003dself.headers,"},{"line_number":138,"context_line":"                         json\u003d{\u0027identity_provider\u0027: idp})"},{"line_number":139,"context_line":"        self.assertThat(r.status_code, is_forbidden)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_6a07bf1c","line":136,"updated":"2015-10-29 06:45:01.000000000","message":"i think range(3) is enough but looks okay as is.","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"e5cae5c3e5ce14be096bd6597135935f080ff9f7","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        \"\"\"Try creating Identity Provider with malformed request.\"\"\""},{"line_number":134,"context_line":"        idp_url \u003d self._idp_url(uuid.uuid4().hex)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        idp \u003d {uuid.uuid4().hex: uuid.uuid4().hex for x in range(4)}"},{"line_number":137,"context_line":"        r \u003d requests.put(idp_url, headers\u003dself.headers,"},{"line_number":138,"context_line":"                         json\u003d{\u0027identity_provider\u0027: idp})"},{"line_number":139,"context_line":"        self.assertThat(r.status_code, is_forbidden)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_d0ca426e","line":136,"in_reply_to":"1a26ad4f_6a07bf1c","updated":"2015-10-29 07:53:26.000000000","message":"i am ok with 4","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"ee88dc6260557cc2da8a56e38f73e3c57dcacab0","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        - Create Identity Provider"},{"line_number":147,"context_line":"        - Update Identity Provider with malformed request"},{"line_number":148,"context_line":"        - Ensure the request fails"},{"line_number":149,"context_line":"        - Delete Identity Provider"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        idp_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_552aa47f","line":149,"updated":"2015-10-29 06:45:01.000000000","message":"delete this scenario, \"Delete Identity Provider\" is not covered in this testcase.","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"e5cae5c3e5ce14be096bd6597135935f080ff9f7","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        - Create Identity Provider"},{"line_number":147,"context_line":"        - Update Identity Provider with malformed request"},{"line_number":148,"context_line":"        - Ensure the request fails"},{"line_number":149,"context_line":"        - Delete Identity Provider"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        idp_id \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a26ad4f_70c9ee77","line":149,"in_reply_to":"1a26ad4f_552aa47f","updated":"2015-10-29 07:53:26.000000000","message":"Done","commit_id":"b7b48d49dcad4408edd016bf7db3a47cc1e9aa0a"}]}
