)]}'
{"keystone_tempest_plugin/services/identity/v3/identity_providers_client.py":[{"author":{"_account_id":9301,"name":"Navid Pustchi","email":"npustchi@gmail.com","username":"Navid"},"change_message_id":"288beb5bd5cfb1d9b66b5ae90278a7e917a9c643","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        body \u003d jsonutils.loads(body)"},{"line_number":51,"context_line":"        return rest_client.ResponseBody(resp, body)[\u0027identity_provider\u0027]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def delete_identity_provider(self, idp_id):"},{"line_number":54,"context_line":"        \"\"\"Delete an identity provider.\"\"\""},{"line_number":55,"context_line":"        resp, body \u003d self._delete(idp_id)"},{"line_number":56,"context_line":"        self.expected_success(204, resp.status)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_2634fb48","line":53,"updated":"2016-04-21 15:39:37.000000000","message":"docstring for idp_id as well would be good.\n\n:param str idp_id: The ID to be used to delete the Identity Provider.","commit_id":"1242ca5e999b9d715319e1c2ef722d9decec5e40"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dd3597b97ea34bdabf6ed66bb678b94274904c96","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        url \u003d \u0027%s/%s/%s\u0027 % ("},{"line_number":76,"context_line":"            self._build_path(entity_id\u003didp_id), \u0027protocols\u0027, protocol_id)"},{"line_number":77,"context_line":"        resp, body \u003d self.put(url, put_body)"},{"line_number":78,"context_line":"        self.expected_success(201, resp.status)"},{"line_number":79,"context_line":"        body \u003d json.loads(body)"},{"line_number":80,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_2228dde1","line":78,"updated":"2016-06-13 14:04:55.000000000","message":"I wonder if we should use the http_client library here like we do in other places in keystone [0].\n\n    self.expected_success(http_client.CREATED, resp.status)\n\nThis is something we should do in a separate patch since it would need to be applied to other instances outside the scope of this patch (I\u0027m just typing out-loud and commenting here so we don\u0027t forget about it).\n\n[0] https://github.com/openstack/keystone/blob/3ff204a414f12555750770ab500eef706329f80a/keystone/tests/unit/test_v3_auth.py#L770","commit_id":"b7b4aaa2cfc01142daf23eb8d09d983bffa5950d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a1ff6564cc62a23457fe98ef660617bc18c738f2","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        url \u003d \u0027%s/%s/%s\u0027 % ("},{"line_number":76,"context_line":"            self._build_path(entity_id\u003didp_id), \u0027protocols\u0027, protocol_id)"},{"line_number":77,"context_line":"        resp, body \u003d self.put(url, put_body)"},{"line_number":78,"context_line":"        self.expected_success(201, resp.status)"},{"line_number":79,"context_line":"        body \u003d json.loads(body)"},{"line_number":80,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_8b8a8962","line":78,"in_reply_to":"7aa08908_2228dde1","updated":"2016-06-13 15:40:35.000000000","message":"++ to a separate path for this","commit_id":"b7b4aaa2cfc01142daf23eb8d09d983bffa5950d"}],"keystone_tempest_plugin/tests/api/identity/v3/test_identity_providers.py":[{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"50ce5174fffe496ec03cfe13cd15300267ce2fa4","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        # a non existent mapping ID"},{"line_number":214,"context_line":"        mapping_id \u003d data_utils.rand_uuid_hex()"},{"line_number":215,"context_line":"        protocol_id \u003d data_utils.rand_uuid_hex()"},{"line_number":216,"context_line":"        protocol \u003d self._create_protocol(idp_id, protocol_id, mapping_id)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        self._assert_protocol_attributes(protocol, protocol_id, mapping_id)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_56bcf66b","line":216,"updated":"2016-05-25 14:43:56.000000000","message":"So this succeeds?","commit_id":"8da4726b12e7eeef3d6c53d1516080e04109227c"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"851407ef0c97f326d9d4d4b7814f00822467c3a9","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        # a non existent mapping ID"},{"line_number":214,"context_line":"        mapping_id \u003d data_utils.rand_uuid_hex()"},{"line_number":215,"context_line":"        protocol_id \u003d data_utils.rand_uuid_hex()"},{"line_number":216,"context_line":"        protocol \u003d self._create_protocol(idp_id, protocol_id, mapping_id)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        self._assert_protocol_attributes(protocol, protocol_id, mapping_id)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_712514aa","line":216,"in_reply_to":"bab6814e_56bcf66b","updated":"2016-05-27 17:26:35.000000000","message":"yep! this was something I brought up in a keystone meeting and it was decided that fixing this was an API break change :)","commit_id":"8da4726b12e7eeef3d6c53d1516080e04109227c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dd3597b97ea34bdabf6ed66bb678b94274904c96","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        self.assertIn(\u0027mapping_id\u0027, protocol)"},{"line_number":124,"context_line":"        if mapping_id:"},{"line_number":125,"context_line":"            self.assertEqual(mapping_id, protocol[\u0027mapping_id\u0027])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _create_identity_provider_and_mapping(self):"},{"line_number":128,"context_line":"        # Create an identity provider"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_c2b8f977","line":125,"updated":"2016-06-13 14:04:55.000000000","message":"This seems like something we can do with jsonschema. Kind of similar to the token response validation that we do in our unit tests [0].\n\n[0] https://github.com/openstack/keystone/blob/3ff204a414f12555750770ab500eef706329f80a/keystone/tests/unit/test_v3.py#L686-L693","commit_id":"b7b4aaa2cfc01142daf23eb8d09d983bffa5950d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"dd3597b97ea34bdabf6ed66bb678b94274904c96","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        self._assert_protocol_attributes(protocol, protocol_id, mapping_id)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    @decorators.idempotent_id(\u0027c73311e7-c207-4c11-998f-532a91f1b0d1\u0027)"},{"line_number":221,"context_line":"    def test_update_protocol_from_identity_provider_unknown_mapping(self):"},{"line_number":222,"context_line":"        idp_id, mapping_id \u003d self._create_identity_provider_and_mapping()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # Add a protocol to the identity provider"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_7d53aa17","line":221,"updated":"2016-06-13 14:04:55.000000000","message":"These are all successful tests, right? None of these are negative tests? Maybe we could add the outcome of the test as a naming convention to the tests.","commit_id":"b7b4aaa2cfc01142daf23eb8d09d983bffa5950d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0accf9a0ac328161f152ba5617c5b44659914982","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        self._assert_protocol_attributes(protocol, protocol_id, mapping_id)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    @decorators.idempotent_id(\u0027c73311e7-c207-4c11-998f-532a91f1b0d1\u0027)"},{"line_number":221,"context_line":"    def test_update_protocol_from_identity_provider_unknown_mapping(self):"},{"line_number":222,"context_line":"        idp_id, mapping_id \u003d self._create_identity_provider_and_mapping()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # Add a protocol to the identity provider"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_0b84d908","line":221,"in_reply_to":"7aa08908_6bc59d8c","updated":"2016-06-13 15:45:13.000000000","message":"++ it would be nice to establish that kind of convention early on since this is a new \"set\" or type of testing we are doing. \n\nI\u0027d be fine with this as a follow on patch though. Just trying to catch these types of things early - before we have *tons* of instances to correct ;)","commit_id":"b7b4aaa2cfc01142daf23eb8d09d983bffa5950d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a1ff6564cc62a23457fe98ef660617bc18c738f2","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        self._assert_protocol_attributes(protocol, protocol_id, mapping_id)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    @decorators.idempotent_id(\u0027c73311e7-c207-4c11-998f-532a91f1b0d1\u0027)"},{"line_number":221,"context_line":"    def test_update_protocol_from_identity_provider_unknown_mapping(self):"},{"line_number":222,"context_line":"        idp_id, mapping_id \u003d self._create_identity_provider_and_mapping()"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # Add a protocol to the identity provider"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_6bc59d8c","line":221,"in_reply_to":"7aa08908_7d53aa17","updated":"2016-06-13 15:40:35.000000000","message":"++ if you look back at tests i write i\u0027ll often name tests like test_blah_succeeds or test_blah_fails.","commit_id":"b7b4aaa2cfc01142daf23eb8d09d983bffa5950d"}]}
