)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Arthur Miranda \u003cartmr@lsd.ufcg.edu.br\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-23 17:41:14 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adjustments in behavior of find method in base.py class"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous behavior of the find method in base.py class does"},{"line_number":10,"context_line":"not include the use case which the user includes the id as a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a8bc5a2_9feaea0d","line":7,"updated":"2016-09-26 14:43:55.000000000","message":"I believe it will be better if you just say what is this adjustment, something like: \"Filtering id as unique parameter on CRUD manager\"","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous behavior of the find method in base.py class does"},{"line_number":10,"context_line":"not include the use case which the user includes the id as a"},{"line_number":11,"context_line":"only parameter, because it is the responsibility of the get method,"},{"line_number":12,"context_line":"but the return of this use case does not match an expected result,"},{"line_number":13,"context_line":"because lauch NoUniqueMatch exception."},{"line_number":14,"context_line":"If the id is not a unique parameter, the method ingores it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a8bc5a2_ff284e35","line":11,"updated":"2016-09-26 14:43:55.000000000","message":"Sounds odd dealing with a specific case(user) in the CRUD manager. Are you sure this is the right place to make this change? This issue is only related to user or for every Keystone entity?","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":11,"context_line":"only parameter, because it is the responsibility of the get method,"},{"line_number":12,"context_line":"but the return of this use case does not match an expected result,"},{"line_number":13,"context_line":"because lauch NoUniqueMatch exception."},{"line_number":14,"context_line":"If the id is not a unique parameter, the method ingores it."},{"line_number":15,"context_line":"The changes means that if the id is passed as a parameter,"},{"line_number":16,"context_line":"the find method behaves like the get method, ignoring other attributes."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a8bc5a2_dfb1d202","line":14,"updated":"2016-09-26 14:43:55.000000000","message":"If id is not unique, sounds like a ConflictError, I don\u0027t think we should ignores it...","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":16,"context_line":"the find method behaves like the get method, ignoring other attributes."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Id7c89de06f71182e2b290664aa32ffb4e27f3307"},{"line_number":19,"context_line":"Closes-Bug:1626640"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a8bc5a2_bf7a4686","line":19,"updated":"2016-09-26 14:43:55.000000000","message":"missing # on bug link, this should be: Closes-Bug: #1626640","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"36c6218b60375621b209fcecd23a36f83577327a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Arthur Miranda \u003cartmr@lsd.ufcg.edu.br\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-05 11:24:52 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Prevent attempts to \"filter\" find() calls by globally unique IDs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This use case isn\u0027t covered by our current APIs:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a6eadb0_eac25d84","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":64},"updated":"2016-12-21 13:00:04.000000000","message":"I\u0027d rather fix .find() to work when an ID is passed than preventing this. find is expected to find an entity with the given attributes. It does not matter if doing a get makes more sense for the case of ID specifically, it\u0027s up to the user how they want to retrieve it.","commit_id":"5e0a238ec27aeed33c2601bcd7ede358be264cbd"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"36c6218b60375621b209fcecd23a36f83577327a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"  GET /entities/{entity_id}"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"But our find() methods generally support **kwargs, which are passed as"},{"line_number":19,"context_line":"query parameters to keystone. When an \u0027id\u0027 or \u0027entity_id\u0027 is passed to"},{"line_number":20,"context_line":"keystone as a query parameter, keystone rightly ignores it and returns"},{"line_number":21,"context_line":"an unfiltered collection."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1a6eadb0_0f916bf1","line":19,"range":{"start_line":19,"start_character":39,"end_line":19,"end_character":41},"updated":"2016-12-21 13:00:04.000000000","message":"For filters like entity_id it is expected to ignore, this is by design. When a filter is not valid, it is just ignored by keystone server. However, ID is a valid filter because entities do have an attribute called ID, I am a bit surprised it is ignored too.","commit_id":"5e0a238ec27aeed33c2601bcd7ede358be264cbd"}],"keystoneclient/base.py":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            new_kwargs[key] \u003d id_value"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        return f(*args, **new_kwargs)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    return func"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_1fd09a1e","line":75,"updated":"2016-09-26 14:43:55.000000000","message":"unrelated change","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"bad15d8de7c860a0d9e8ea514cda1614fc17e981","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            new_kwargs[key] \u003d id_value"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        return f(*args, **new_kwargs)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    return func"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_996761e8","line":75,"in_reply_to":"5a8bc5a2_1fd09a1e","updated":"2016-09-26 16:38:00.000000000","message":"++","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        \"\"\"Find a single item with attributes matching ``**kwargs``.\"\"\""},{"line_number":421,"context_line":"        url \u003d self.build_url(dict_args_in_out\u003dkwargs)"},{"line_number":422,"context_line":"        if \"id\" in kwargs.keys():"},{"line_number":423,"context_line":"            return self.get(kwargs.get(\u0027id\u0027))"},{"line_number":424,"context_line":"        else:"},{"line_number":425,"context_line":"            query \u003d self._build_query(kwargs)"},{"line_number":426,"context_line":"            request_result \u003d self._list("}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_bfbc06bc","line":423,"updated":"2016-09-26 14:43:55.000000000","message":"You\u0027re not dealing with no unique id\u0027s here, since you\u0027re just returning the object directly, I suggest make:\n\nrequest_result \u003d self.get(kwargs.get(\u0027id\u0027))\n\nand just return by the end of the method.","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b0a9c8500e89e0f632431b249443be90b7d80871","unresolved":false,"context_lines":[{"line_number":423,"context_line":"            return self.get(kwargs.get(\u0027id\u0027))"},{"line_number":424,"context_line":"        else:"},{"line_number":425,"context_line":"            query \u003d self._build_query(kwargs)"},{"line_number":426,"context_line":"            request_result \u003d self._list("},{"line_number":427,"context_line":"                \u0027{}{}\u0027.format(url, query),"},{"line_number":428,"context_line":"                self.collection_key)"},{"line_number":429,"context_line":"        num \u003d len(request_result)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a8bc5a2_dffb9279","line":426,"updated":"2016-09-26 14:43:55.000000000","message":"Why we have to change this else case? what will be the difference on this list case?","commit_id":"d820e0a1a9b02b3fdb438bc3ef83f1db21dbd7d2"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"7a4aad2614de4c30e49fadfa44642a8c0a7a06ac","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."},{"line_number":425,"context_line":"        if \"{}_id\".format(self.key) in kwargs.keys() or \"id\" in kwargs.keys():"},{"line_number":426,"context_line":"            raise TypeError("},{"line_number":427,"context_line":"                _(\"find() got an unexpected keyword argument \u0027id\u0027. To \""},{"line_number":428,"context_line":"                  \"retrieve a single object using a globally unique \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_9962bc3c","line":425,"updated":"2016-09-27 16:27:57.000000000","message":"You don\u0027t need to call keys() as \"item in dict_instance\" is effectively equal to \"item in dict_instance.keys()\"","commit_id":"e21e571d487a70a4e5f32e7060995741d040b66c"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"2e8a5f8668c0d64b75d9a8c8e18975b2521db56d","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."},{"line_number":425,"context_line":"        if \"{}_id\".format(self.key) in kwargs.keys() or \"id\" in kwargs.keys():"},{"line_number":426,"context_line":"            raise TypeError("},{"line_number":427,"context_line":"                _(\"find() got an unexpected keyword argument \u0027id\u0027. To \""},{"line_number":428,"context_line":"                  \"retrieve a single object using a globally unique \""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_6a70ac40","line":425,"in_reply_to":"5a8bc5a2_9962bc3c","updated":"2016-09-30 14:46:58.000000000","message":"key_example in \u003cdict\u003e: \nReturn True if \u003cdict\u003e has a key key_example, else False.\nI\u0027m verifying if exists one key named \u0027id\u0027 or \u0027entity_id\u0027 (entity as \u0027project\u0027, \u0027users\u0027...) in kwargs.\n\nSo, do you have an suggestion for make this better?","commit_id":"e21e571d487a70a4e5f32e7060995741d040b66c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"04241e02bd067d6bd2766004b7ce8a5858be501d","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        elif len(elements) \u003e 1:"},{"line_number":444,"context_line":"            raise exceptions.NoUniqueMatch"},{"line_number":445,"context_line":"        else:"},{"line_number":446,"context_line":"            return elements[0]"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"class Resource(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_ad9dff5a","line":446,"range":{"start_line":446,"start_character":12,"end_line":446,"end_character":18},"updated":"2016-09-30 06:47:40.000000000","message":"so I\u0027ll agree all this is pretty ugly - but it\u0027s not actually related to this patch. You can clean it up if you like, but you should probably do it seperately.","commit_id":"c287150de3f463d38dc6c12f440b390199d3a498"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"00109ebb2aeaa0ed714162f730a6fb1c9e300519","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        elif len(elements) \u003e 1:"},{"line_number":444,"context_line":"            raise exceptions.NoUniqueMatch"},{"line_number":445,"context_line":"        else:"},{"line_number":446,"context_line":"            return elements[0]"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"class Resource(object):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_be5a6728","line":446,"range":{"start_line":446,"start_character":12,"end_line":446,"end_character":18},"in_reply_to":"3a98d1f4_ad9dff5a","updated":"2016-09-30 14:47:10.000000000","message":"Done","commit_id":"c287150de3f463d38dc6c12f440b390199d3a498"},{"author":{"_account_id":23609,"name":"Charlle Daniel","email":"charlledaniel@lsd.ufcg.edu.br","username":"charlledani2"},"change_message_id":"eeb955db2c01ca5226cfe6ef9951eba51a15cd25","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."},{"line_number":425,"context_line":"        if \"{}_id\".format(self.key) in kwargs.keys() or \"id\" in kwargs.keys():"},{"line_number":426,"context_line":"            raise TypeError("},{"line_number":427,"context_line":"                _(\"find() got an unexpected keyword argument \u0027id\u0027. To \""},{"line_number":428,"context_line":"                  \"retrieve a single object using a globally unique \""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_e5cd37b8","line":425,"range":{"start_line":425,"start_character":8,"end_line":425,"end_character":52},"updated":"2016-09-30 16:34:06.000000000","message":"I\u0027d suggest using % to format strings instead of format.","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."},{"line_number":425,"context_line":"        if \"{}_id\".format(self.key) in kwargs.keys() or \"id\" in kwargs.keys():"},{"line_number":426,"context_line":"            raise TypeError("},{"line_number":427,"context_line":"                _(\"find() got an unexpected keyword argument \u0027id\u0027. To \""},{"line_number":428,"context_line":"                  \"retrieve a single object using a globally unique \""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_c50afb78","line":425,"range":{"start_line":425,"start_character":8,"end_line":425,"end_character":52},"in_reply_to":"3a98d1f4_e5cd37b8","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"303976e4ded04ceb7aa84ca350ca6a43ab72b6cd","unresolved":false,"context_lines":[{"line_number":418,"context_line":"    def find(self, **kwargs):"},{"line_number":419,"context_line":"        \"\"\"Find a single item with attributes matching ``**kwargs``.\"\"\""},{"line_number":420,"context_line":"        # Ensure that users are not trying to call things like"},{"line_number":421,"context_line":"        # `projects.find(id\u003ddefault\u0027)` or `projects.find(project_id\u003ddefault\u0027)`"},{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_613254f3","line":421,"updated":"2016-11-23 22:43:39.000000000","message":"nit: \u0027default\u0027","commit_id":"2b6cbbe7c06290bab27ff3845f3398e6fef591d0"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"d91063f4703315bc1326287defd90e3dfce1f43f","unresolved":false,"context_lines":[{"line_number":418,"context_line":"    def find(self, **kwargs):"},{"line_number":419,"context_line":"        \"\"\"Find a single item with attributes matching ``**kwargs``.\"\"\""},{"line_number":420,"context_line":"        # Ensure that users are not trying to call things like"},{"line_number":421,"context_line":"        # `projects.find(id\u003ddefault\u0027)` or `projects.find(project_id\u003ddefault\u0027)`"},{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_fde5d237","line":421,"in_reply_to":"5a74a57a_613254f3","updated":"2016-11-25 17:29:07.000000000","message":"Done","commit_id":"2b6cbbe7c06290bab27ff3845f3398e6fef591d0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"303976e4ded04ceb7aa84ca350ca6a43ab72b6cd","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."},{"line_number":425,"context_line":"        if (\"%s_id\" % self.key in kwargs.keys()) or (\"id\" in kwargs.keys()):"},{"line_number":426,"context_line":"            raise TypeError("},{"line_number":427,"context_line":"                _(\"find() got an unexpected keyword argument \u0027id\u0027. To \""},{"line_number":428,"context_line":"                  \"retrieve a single object using a globally unique \""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_e15ca427","line":425,"updated":"2016-11-23 22:43:39.000000000","message":"minor suggestion to use single quote here instead of double quotes to maintain consistency with the rest of the module.","commit_id":"2b6cbbe7c06290bab27ff3845f3398e6fef591d0"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"d91063f4703315bc1326287defd90e3dfce1f43f","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        # when they should have used `[projects.get(project_id\u003d\u0027default\u0027)]`"},{"line_number":423,"context_line":"        # instead. Keystone supports `GET /v3/projects/{project_id}`,"},{"line_number":424,"context_line":"        # not `GET /v3/projects?id\u003d{project_id}`."},{"line_number":425,"context_line":"        if (\"%s_id\" % self.key in kwargs.keys()) or (\"id\" in kwargs.keys()):"},{"line_number":426,"context_line":"            raise TypeError("},{"line_number":427,"context_line":"                _(\"find() got an unexpected keyword argument \u0027id\u0027. To \""},{"line_number":428,"context_line":"                  \"retrieve a single object using a globally unique \""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_1de36e34","line":425,"in_reply_to":"5a74a57a_e15ca427","updated":"2016-11-25 17:29:07.000000000","message":"Done","commit_id":"2b6cbbe7c06290bab27ff3845f3398e6fef591d0"}],"keystoneclient/tests/unit/v3/test_role_assignments.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6f3511a722f0a0fc66cbc6a8e281840b20ec1a36","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"from keystoneclient.exceptions import MethodNotImplemented"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from keystoneclient import exceptions"},{"line_number":15,"context_line":"from keystoneclient.tests.unit.v3 import utils"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_583973a3","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":58},"updated":"2016-09-30 15:53:09.000000000","message":"we already import exception 2 lines below, so there\u0027s no need to import the class","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"from keystoneclient.exceptions import MethodNotImplemented"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from keystoneclient import exceptions"},{"line_number":15,"context_line":"from keystoneclient.tests.unit.v3 import utils"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_45c34b38","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":58},"in_reply_to":"3a98d1f4_583973a3","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":"from keystoneclient.exceptions import MethodNotImplemented"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from keystoneclient import exceptions"},{"line_number":15,"context_line":"from keystoneclient.tests.unit.v3 import utils"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_659be772","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":58},"in_reply_to":"3a98d1f4_583973a3","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6f3511a722f0a0fc66cbc6a8e281840b20ec1a36","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_find_by_id(self):"},{"line_number":85,"context_line":"        # Find not supported for role assignments"},{"line_number":86,"context_line":"        self.assertRaises(MethodNotImplemented, self.manager.find)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":89,"context_line":"        # Find not supported for role assignments"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_983f7b86","line":86,"range":{"start_line":86,"start_character":26,"end_line":86,"end_character":46},"updated":"2016-09-30 15:53:09.000000000","message":"call exceptions.MethodNotImplemented","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_find_by_id(self):"},{"line_number":85,"context_line":"        # Find not supported for role assignments"},{"line_number":86,"context_line":"        self.assertRaises(MethodNotImplemented, self.manager.find)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":89,"context_line":"        # Find not supported for role assignments"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_858ab319","line":86,"range":{"start_line":86,"start_character":26,"end_line":86,"end_character":46},"in_reply_to":"3a98d1f4_983f7b86","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_find_by_id(self):"},{"line_number":85,"context_line":"        # Find not supported for role assignments"},{"line_number":86,"context_line":"        self.assertRaises(MethodNotImplemented, self.manager.find)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":89,"context_line":"        # Find not supported for role assignments"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_85b8f3c9","line":86,"range":{"start_line":86,"start_character":26,"end_line":86,"end_character":46},"in_reply_to":"3a98d1f4_983f7b86","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6f3511a722f0a0fc66cbc6a8e281840b20ec1a36","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":89,"context_line":"        # Find not supported for role assignments"},{"line_number":90,"context_line":"        self.assertRaises(MethodNotImplemented, self.manager.find)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_list_params(self):"},{"line_number":93,"context_line":"        ref_list \u003d self.TEST_USER_PROJECT_LIST"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_f84a3f25","line":90,"range":{"start_line":90,"start_character":26,"end_line":90,"end_character":46},"updated":"2016-09-30 15:53:09.000000000","message":"call exceptions.MethodNotImplemented","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":89,"context_line":"        # Find not supported for role assignments"},{"line_number":90,"context_line":"        self.assertRaises(MethodNotImplemented, self.manager.find)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_list_params(self):"},{"line_number":93,"context_line":"        ref_list \u003d self.TEST_USER_PROJECT_LIST"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_a58faf28","line":90,"range":{"start_line":90,"start_character":26,"end_line":90,"end_character":46},"in_reply_to":"3a98d1f4_f84a3f25","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"441ff096045615360b2a494b7dd74bf073aa00e5","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":89,"context_line":"        # Find not supported for role assignments"},{"line_number":90,"context_line":"        self.assertRaises(MethodNotImplemented, self.manager.find)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_list_params(self):"},{"line_number":93,"context_line":"        ref_list \u003d self.TEST_USER_PROJECT_LIST"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a98d1f4_e5b377e7","line":90,"range":{"start_line":90,"start_character":26,"end_line":90,"end_character":46},"in_reply_to":"3a98d1f4_f84a3f25","updated":"2016-09-30 16:50:40.000000000","message":"Done","commit_id":"7a20fab14d4fac401376b7f60502df7cb1964f54"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"303976e4ded04ceb7aa84ca350ca6a43ab72b6cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from keystoneclient import exceptions"},{"line_number":14,"context_line":"from keystoneclient.tests.unit.v3 import utils"},{"line_number":15,"context_line":"from keystoneclient.v3 import role_assignments"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_8174d09c","side":"PARENT","line":12,"updated":"2016-11-23 22:43:39.000000000","message":"This looks like an unrelated whitespace change.","commit_id":"891398024ac06009d08a245ba8c80f4566539b4b"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"d91063f4703315bc1326287defd90e3dfce1f43f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from keystoneclient import exceptions"},{"line_number":14,"context_line":"from keystoneclient.tests.unit.v3 import utils"},{"line_number":15,"context_line":"from keystoneclient.v3 import role_assignments"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_ddc3b687","side":"PARENT","line":12,"in_reply_to":"5a74a57a_8174d09c","updated":"2016-11-25 17:29:07.000000000","message":"Done","commit_id":"891398024ac06009d08a245ba8c80f4566539b4b"}],"keystoneclient/tests/unit/v3/utils.py":[{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"7a4aad2614de4c30e49fadfa44642a8c0a7a06ac","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        except MethodNotImplemented:"},{"line_number":329,"context_line":"            pass"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            raise"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":334,"context_line":"        \"\"\"Test ``entities.find(entity_id\u003dx)``."}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_b4521f11","line":331,"updated":"2016-09-27 16:27:57.000000000","message":"You should have a strong reason explained in the comment to do this - you just hide all and every exception. Would you kindly explain this?","commit_id":"e21e571d487a70a4e5f32e7060995741d040b66c"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"2e8a5f8668c0d64b75d9a8c8e18975b2521db56d","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        except MethodNotImplemented:"},{"line_number":329,"context_line":"            pass"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            raise"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def test_find_by_entity_id(self, ref\u003dNone, **filter_kwargs):"},{"line_number":334,"context_line":"        \"\"\"Test ``entities.find(entity_id\u003dx)``."}],"source_content_type":"text/x-python","patch_set":2,"id":"5a8bc5a2_c53ff384","line":331,"in_reply_to":"5a8bc5a2_b4521f11","updated":"2016-09-30 14:46:58.000000000","message":"Done","commit_id":"e21e571d487a70a4e5f32e7060995741d040b66c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"04241e02bd067d6bd2766004b7ce8a5858be501d","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class ClientTestCase(utils.ClientTestCaseMixin, TestCase):"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    ORIGINAL_CLIENT_TYPE \u003d \u0027original\u0027"},{"line_number":148,"context_line":"    KSC_SESSION_CLIENT_TYPE \u003d \u0027ksc-session\u0027"},{"line_number":149,"context_line":"    KSA_SESSION_CLIENT_TYPE \u003d \u0027ksa-session\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_4def1b87","side":"PARENT","line":146,"updated":"2016-09-30 06:47:40.000000000","message":"lots of scattered whitespace changes.","commit_id":"891398024ac06009d08a245ba8c80f4566539b4b"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"00109ebb2aeaa0ed714162f730a6fb1c9e300519","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class ClientTestCase(utils.ClientTestCaseMixin, TestCase):"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    ORIGINAL_CLIENT_TYPE \u003d \u0027original\u0027"},{"line_number":148,"context_line":"    KSC_SESSION_CLIENT_TYPE \u003d \u0027ksc-session\u0027"},{"line_number":149,"context_line":"    KSA_SESSION_CLIENT_TYPE \u003d \u0027ksa-session\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_9886a2d9","side":"PARENT","line":146,"in_reply_to":"3a98d1f4_4def1b87","updated":"2016-09-30 14:47:10.000000000","message":"Sorry about whitespace changes made in these and the another patch. I don\u0027t made it voluntarily and I should have been more attentive. Thank you for Review and comments.","commit_id":"891398024ac06009d08a245ba8c80f4566539b4b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"04241e02bd067d6bd2766004b7ce8a5858be501d","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        try:"},{"line_number":326,"context_line":"            self.assertRaises(TypeError, self.manager.find, **filter_kwargs)"},{"line_number":327,"context_line":"        # RoleAssignmentManager do not supports Find method"},{"line_number":328,"context_line":"        except MethodNotImplemented:"},{"line_number":329,"context_line":"            pass"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_8db76385","line":328,"range":{"start_line":328,"start_character":0,"end_line":328,"end_character":8},"updated":"2016-09-30 06:47:40.000000000","message":"This looks wrong to me, you should probably just override the test in RoleAssignmentManager to do skip this.","commit_id":"c287150de3f463d38dc6c12f440b390199d3a498"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"00109ebb2aeaa0ed714162f730a6fb1c9e300519","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        try:"},{"line_number":326,"context_line":"            self.assertRaises(TypeError, self.manager.find, **filter_kwargs)"},{"line_number":327,"context_line":"        # RoleAssignmentManager do not supports Find method"},{"line_number":328,"context_line":"        except MethodNotImplemented:"},{"line_number":329,"context_line":"            pass"},{"line_number":330,"context_line":"        except Exception:"},{"line_number":331,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a98d1f4_616042a6","line":328,"range":{"start_line":328,"start_character":0,"end_line":328,"end_character":8},"in_reply_to":"3a98d1f4_8db76385","updated":"2016-09-30 14:47:10.000000000","message":"Done","commit_id":"c287150de3f463d38dc6c12f440b390199d3a498"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"303976e4ded04ceb7aa84ca350ca6a43ab72b6cd","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        \"\"\"Test ``entities.find(id\u003dx)`` being rewritten as ``GET /v3/entities/x``."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        This tests an edge case of each manager\u0027s find() implementation,"},{"line_number":320,"context_line":"        to ensure that it \"does the right thing\" when users call ``.find()``"},{"line_number":321,"context_line":"        when they should have used ``.get()``."},{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        if \u0027id\u0027 not in filter_kwargs:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_21adbce9","line":320,"updated":"2016-11-23 22:43:39.000000000","message":"nit: we could elaborate on this a bit more to say that the right thing is to bail early and to suggest that the user use the dedicated API for getting things by id versus using find.","commit_id":"2b6cbbe7c06290bab27ff3845f3398e6fef591d0"},{"author":{"_account_id":23633,"name":"Arthur Miranda","email":"artmr@lsd.ufcg.edu.br","username":"artmr"},"change_message_id":"d91063f4703315bc1326287defd90e3dfce1f43f","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        \"\"\"Test ``entities.find(id\u003dx)`` being rewritten as ``GET /v3/entities/x``."},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        This tests an edge case of each manager\u0027s find() implementation,"},{"line_number":320,"context_line":"        to ensure that it \"does the right thing\" when users call ``.find()``"},{"line_number":321,"context_line":"        when they should have used ``.get()``."},{"line_number":322,"context_line":"        \"\"\""},{"line_number":323,"context_line":"        if \u0027id\u0027 not in filter_kwargs:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a74a57a_5df086fe","line":320,"in_reply_to":"5a74a57a_21adbce9","updated":"2016-11-25 17:29:07.000000000","message":"Done","commit_id":"2b6cbbe7c06290bab27ff3845f3398e6fef591d0"}]}
