)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"a9ba9a93dafaf7b8df5d59466078a32f168558ac","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Code to add a consumers client for tempest testing"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Implements bp: tempest-keystone-consumer-client"},{"line_number":12,"context_line":"Co-Authored-By: Nishant Kumar \u003cnk776q@att.com\u003e"},{"line_number":13,"context_line":"Co-Authored-By: Avishek Dutta \u003cad620p@att.com\u003e"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa31d9ce_67475e77","line":11,"updated":"2017-02-14 18:00:22.000000000","message":"So this really doesn\u0027t need a bp. Also, we normally reserve blueprints for tracking items with a spec:\n\nhttp://specs.openstack.org/openstack/qa-specs/README.html#expected-work-flow\n\nThis kind of work is too small in scope to justify writing a spec though, so you really just don\u0027t need to track it with a blueprint, just a review is fine.","commit_id":"17d0ddedae75c99b79e49d34c4ae4264fb7790a0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ab601aaaa30d2454d7e51c018a7d63d007ff397c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nicolas Helgeson \u003cnh202b@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-02-16 17:52:24 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Identity V3-ext Consumers Client"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Code to add a consumers client for tempest testing"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa31d9ce_f22d40fe","line":7,"range":{"start_line":7,"start_character":9,"end_line":7,"end_character":25},"updated":"2017-02-17 14:40:50.000000000","message":"v3-ext OAUTH Consumers","commit_id":"bc6b5034f4eec55a128760e6ebe6e9fe60bcc89b"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ab601aaaa30d2454d7e51c018a7d63d007ff397c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Identity V3-ext Consumers Client"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Code to add a consumers client for tempest testing"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Co-Authored-By: Nishant Kumar \u003cnk776q@att.com\u003e"},{"line_number":12,"context_line":"Co-Authored-By: Avishek Dutta \u003cad620p@att.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa31d9ce_120c9493","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":50},"updated":"2017-02-17 14:40:50.000000000","message":"You can be more descriptive here. You are adding:\n- a new client lib to handle the OAUTH consumers API\n- tests for the client lib\n- API tests for the OAUTH consumers API","commit_id":"bc6b5034f4eec55a128760e6ebe6e9fe60bcc89b"}],"releasenotes/notes/add-OAUTH-Consumer-Client-tempest-tests-db1df7aae4a9fd4e.yaml":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8aa2a6601728b4969080e8ec180137d2f44c3a76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"da36d5c6_07ad40e9","updated":"2017-02-20 21:33:32.000000000","message":"looks good, but we kind have a \"pattern\" in describing new clients in the lib (which is the only goal for this release note), see [1] and [2] as example.\n\n[1] https://github.com/openstack/tempest/blob/master/releasenotes/notes/add-implied-roles-to-roles-client-library-edf96408ad9ba82e.yaml\n[2] https://github.com/openstack/tempest/blob/master/releasenotes/notes/14.0.0-move-cinder-v3-to-lib-service-be3ba0c20753b594.yaml","commit_id":"02aa7ce2ecc5c5375038de6de1884d03bf4bd443"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"9b6a8a6e98fe6149fc2f4689978cf9aeac551021","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"da36d5c6_86692028","updated":"2017-02-21 12:23:01.000000000","message":"What do you think about something on the lines of: Add a new client to handle the OAUTH consumers API to the library. This API is part of the v3-ext from keystone.","commit_id":"7893beb419efda569eb141f9a05f25c241375f74"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0f63acc33e378b149ec662ea34fdd94c7f499c17","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add a new client to handle the Oauth consumers API calls."},{"line_number":4,"context_line":"    Allowing users to run tests that require v3-ext Oauth1 APIs"},{"line_number":5,"context_line":"    from keystone when needed."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"1a1ced50_39dcae72","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":40},"updated":"2017-03-21 23:37:38.000000000","message":"OAUTH","commit_id":"f1644d2349a4ebfea08572ab42b6bd96996c1a5c"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0f63acc33e378b149ec662ea34fdd94c7f499c17","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add a new client to handle the Oauth consumers API calls."},{"line_number":4,"context_line":"    Allowing users to run tests that require v3-ext Oauth1 APIs"},{"line_number":5,"context_line":"    from keystone when needed."}],"source_content_type":"text/x-yaml","patch_set":34,"id":"1a1ced50_394aee26","line":4,"range":{"start_line":3,"start_character":60,"end_line":4,"end_character":17},"updated":"2017-03-21 23:37:38.000000000","message":"this sentence looks strange. Maybe something like the following is enough:\n\n  Add a new client to handle the OAUTH consumers feature form the identity API.","commit_id":"f1644d2349a4ebfea08572ab42b6bd96996c1a5c"}],"tempest/api/identity/admin/v3/test_consumers.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fa31d9ce_bb80384b","updated":"2017-02-16 13:26:59.000000000","message":"rename this file to \"test_oauth_consumers\"","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_fba390fe","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":1},"updated":"2017-02-16 13:26:59.000000000","message":"remove this header, see comment in the other file.","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest import test"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ConsumersV3Test(base.BaseIdentityV3AdminTest):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def _create_consumer(self):"},{"line_number":27,"context_line":"        \"\"\"Creates a consumer with a random description.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_1ba944e0","line":24,"range":{"start_line":24,"start_character":6,"end_line":24,"end_character":21},"updated":"2017-02-16 13:26:59.000000000","message":"OAUTHConsumersV3Test","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"}],"tempest/api/identity/admin/v3/test_oauth_consumers.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0e7ba9ca5931983686af08e64439adbcf327702c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import tempest.lib.exceptions as exceptions"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.identity import base"},{"line_number":19,"context_line":"from tempest.common.utils import data_utils"},{"line_number":20,"context_line":"from tempest.lib.common.utils import test_utils"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_77a02a44","line":17,"updated":"2017-03-09 07:26:10.000000000","message":"redundant space line?","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0e7ba9ca5931983686af08e64439adbcf327702c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # has all parameters"},{"line_number":46,"context_line":"        self.assertEqual(description,"},{"line_number":47,"context_line":"                         fetched_consumer[\u0027description\u0027])"},{"line_number":48,"context_line":"        self.assertEqual(consumer[\u0027description\u0027],"},{"line_number":49,"context_line":"                         fetched_consumer[\u0027description\u0027])"},{"line_number":50,"context_line":"        self.assertEqual(consumer[\u0027id\u0027],"},{"line_number":51,"context_line":"                         fetched_consumer[\u0027id\u0027])"},{"line_number":52,"context_line":"        self.assertEqual(consumer[\u0027links\u0027],"},{"line_number":53,"context_line":"                         fetched_consumer[\u0027links\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @test.idempotent_id(\u0027fdfa1b7f-2a31-4354-b2c7-f6ae20554f93\u0027)"},{"line_number":56,"context_line":"    def test_delete_consumer(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_776e6a02","line":53,"range":{"start_line":48,"start_character":0,"end_line":53,"end_character":51},"updated":"2017-03-09 07:26:10.000000000","message":"for key in [\u0027description\u0027, \u0027id\u0027, \u0027links\u0027]:\n    self.assertEqual(consumer[key], fetched_consumer[key])","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0e7ba9ca5931983686af08e64439adbcf327702c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # check if created consumer has correct description"},{"line_number":75,"context_line":"        fetched_consumer \u003d self.oauth_consumers_client.show_consumer("},{"line_number":76,"context_line":"            consumer[\u0027id\u0027])[\u0027consumer\u0027]"},{"line_number":77,"context_line":"        self.assertEqual(description, fetched_consumer[\u0027description\u0027])"},{"line_number":78,"context_line":"        # create new description"},{"line_number":79,"context_line":"        new_description \u003d data_utils.rand_name(\u0027test_update_consumer\u0027)"},{"line_number":80,"context_line":"        # update consumer"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_172c4eaa","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":70},"updated":"2017-03-09 07:26:10.000000000","message":"#L46 already covers this check","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0e7ba9ca5931983686af08e64439adbcf327702c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertEqual(new_description, updated_consumer[\u0027description\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @test.idempotent_id(\u0027b05cc64f-54f7-414b-97da-c9bec6d1ceb8\u0027)"},{"line_number":89,"context_line":"    def test_show_consumer(self):"},{"line_number":90,"context_line":"        \"\"\"Tests getting details on a single consumer\"\"\""},{"line_number":91,"context_line":"        consumer, _ \u003d self._create_consumer()"},{"line_number":92,"context_line":"        # fetch created consumer"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_b2147044","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":33},"updated":"2017-03-09 07:26:10.000000000","message":"this is duplicated with test_create_consumer","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e9c6780f2d62f40e6337828bc2e5f0fe97d23e1a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertEqual(new_description, updated_consumer[\u0027description\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @test.idempotent_id(\u0027b05cc64f-54f7-414b-97da-c9bec6d1ceb8\u0027)"},{"line_number":89,"context_line":"    def test_show_consumer(self):"},{"line_number":90,"context_line":"        \"\"\"Tests getting details on a single consumer\"\"\""},{"line_number":91,"context_line":"        consumer, _ \u003d self._create_consumer()"},{"line_number":92,"context_line":"        # fetch created consumer"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_560bfe29","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":33},"in_reply_to":"9a30ddce_a5cdf5b8","updated":"2017-03-10 00:51:17.000000000","message":"Maybe you can remove this and rename test_create_consumer as test_create_and_show_consumer","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1a3ca05480cc4a39cd78466fe7be33eff52bc44b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertEqual(new_description, updated_consumer[\u0027description\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @test.idempotent_id(\u0027b05cc64f-54f7-414b-97da-c9bec6d1ceb8\u0027)"},{"line_number":89,"context_line":"    def test_show_consumer(self):"},{"line_number":90,"context_line":"        \"\"\"Tests getting details on a single consumer\"\"\""},{"line_number":91,"context_line":"        consumer, _ \u003d self._create_consumer()"},{"line_number":92,"context_line":"        # fetch created consumer"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_c30c9c3d","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":33},"in_reply_to":"9a30ddce_a5cdf5b8","updated":"2017-03-09 19:41:21.000000000","message":"it is not duplicated, it tests the \"show_consumer\" API call.","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"f7f6519fda5ada7851eacdd60a73a328b9fd50d6","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertEqual(new_description, updated_consumer[\u0027description\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @test.idempotent_id(\u0027b05cc64f-54f7-414b-97da-c9bec6d1ceb8\u0027)"},{"line_number":89,"context_line":"    def test_show_consumer(self):"},{"line_number":90,"context_line":"        \"\"\"Tests getting details on a single consumer\"\"\""},{"line_number":91,"context_line":"        consumer, _ \u003d self._create_consumer()"},{"line_number":92,"context_line":"        # fetch created consumer"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_a5cdf5b8","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":33},"in_reply_to":"9a30ddce_b2147044","updated":"2017-03-09 17:17:25.000000000","message":"Should I just omit this test? Or leave it with a pass and a comment saying it is already tested by create_consumer?","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e9c6780f2d62f40e6337828bc2e5f0fe97d23e1a","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertEqual(new_description, updated_consumer[\u0027description\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @test.idempotent_id(\u0027b05cc64f-54f7-414b-97da-c9bec6d1ceb8\u0027)"},{"line_number":89,"context_line":"    def test_show_consumer(self):"},{"line_number":90,"context_line":"        \"\"\"Tests getting details on a single consumer\"\"\""},{"line_number":91,"context_line":"        consumer, _ \u003d self._create_consumer()"},{"line_number":92,"context_line":"        # fetch created consumer"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_9601f608","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":33},"in_reply_to":"9a30ddce_c30c9c3d","updated":"2017-03-10 00:51:17.000000000","message":"test_create_consumer already covers show_consumer","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1a3ca05480cc4a39cd78466fe7be33eff52bc44b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        fetched_consumer \u003d self.oauth_consumers_client.show_consumer("},{"line_number":94,"context_line":"            consumer[\u0027id\u0027])[\u0027consumer\u0027]"},{"line_number":95,"context_line":"        # check if created consumer matches fetched consumer"},{"line_number":96,"context_line":"        self.assertEqual(consumer[\u0027description\u0027],"},{"line_number":97,"context_line":"                         fetched_consumer[\u0027description\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(consumer[\u0027id\u0027],"},{"line_number":99,"context_line":"                         fetched_consumer[\u0027id\u0027])"},{"line_number":100,"context_line":"        self.assertEqual(consumer[\u0027links\u0027],"},{"line_number":101,"context_line":"                         fetched_consumer[\u0027links\u0027])"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @test.idempotent_id(\u002709ca50de-78f2-4ffb-ac71-f2254036b2b8\u0027)"},{"line_number":104,"context_line":"    def test_list_consumers(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_c323bca5","line":101,"range":{"start_line":96,"start_character":0,"end_line":101,"end_character":51},"updated":"2017-03-09 19:41:21.000000000","message":"since you do this quite often in this file, would be nice to extract this checks to a private function.","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e9c6780f2d62f40e6337828bc2e5f0fe97d23e1a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        fetched_consumer \u003d self.oauth_consumers_client.show_consumer("},{"line_number":94,"context_line":"            consumer[\u0027id\u0027])[\u0027consumer\u0027]"},{"line_number":95,"context_line":"        # check if created consumer matches fetched consumer"},{"line_number":96,"context_line":"        self.assertEqual(consumer[\u0027description\u0027],"},{"line_number":97,"context_line":"                         fetched_consumer[\u0027description\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(consumer[\u0027id\u0027],"},{"line_number":99,"context_line":"                         fetched_consumer[\u0027id\u0027])"},{"line_number":100,"context_line":"        self.assertEqual(consumer[\u0027links\u0027],"},{"line_number":101,"context_line":"                         fetched_consumer[\u0027links\u0027])"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @test.idempotent_id(\u002709ca50de-78f2-4ffb-ac71-f2254036b2b8\u0027)"},{"line_number":104,"context_line":"    def test_list_consumers(self):"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_b927cbb4","line":101,"range":{"start_line":96,"start_character":0,"end_line":101,"end_character":51},"in_reply_to":"9a30ddce_c323bca5","updated":"2017-03-10 00:51:17.000000000","message":"after removing test_show_consumer, this will become not \"quite often\" :)","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"0e7ba9ca5931983686af08e64439adbcf327702c","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # fetch the list of consumers"},{"line_number":110,"context_line":"        consumer_list \u003d self.oauth_consumers_client \\"},{"line_number":111,"context_line":"                            .list_consumers()[\u0027consumers\u0027]"},{"line_number":112,"context_line":"        # add fetched consumer ids to a list"},{"line_number":113,"context_line":"        id_list \u003d []"},{"line_number":114,"context_line":"        for consumer in consumer_list:"},{"line_number":115,"context_line":"            id_list.append(consumer[\u0027id\u0027])"},{"line_number":116,"context_line":"        # check if created consumers are in the list"},{"line_number":117,"context_line":"        self.assertIn(new_consumer_one[\u0027id\u0027], id_list)"},{"line_number":118,"context_line":"        self.assertIn(new_consumer_two[\u0027id\u0027], id_list)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_b7b1c291","line":115,"range":{"start_line":112,"start_character":0,"end_line":115,"end_character":42},"updated":"2017-03-09 07:26:10.000000000","message":"id_list \u003d [consumer[\u0027id\u0027] for consumer in consumer_list]","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1a3ca05480cc4a39cd78466fe7be33eff52bc44b","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        # fetch the list of consumers"},{"line_number":110,"context_line":"        consumer_list \u003d self.oauth_consumers_client \\"},{"line_number":111,"context_line":"                            .list_consumers()[\u0027consumers\u0027]"},{"line_number":112,"context_line":"        # add fetched consumer ids to a list"},{"line_number":113,"context_line":"        id_list \u003d []"},{"line_number":114,"context_line":"        for consumer in consumer_list:"},{"line_number":115,"context_line":"            id_list.append(consumer[\u0027id\u0027])"},{"line_number":116,"context_line":"        # check if created consumers are in the list"},{"line_number":117,"context_line":"        self.assertIn(new_consumer_one[\u0027id\u0027], id_list)"},{"line_number":118,"context_line":"        self.assertIn(new_consumer_two[\u0027id\u0027], id_list)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9a30ddce_634f706b","line":115,"range":{"start_line":112,"start_character":0,"end_line":115,"end_character":42},"in_reply_to":"9a30ddce_b7b1c291","updated":"2017-03-09 19:41:21.000000000","message":"++","commit_id":"ae6d4cce54d0a69848598b0d87668536aa594155"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"eb2330027151d4d42367667ad7b02dd20112fdce","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertEqual(consumer[\u0027id\u0027], fetched_consumer[\u0027id\u0027])"},{"line_number":61,"context_line":"        # delete existing user"},{"line_number":62,"context_line":"        self.oauth_consumers_client.delete_consumer(consumer[\u0027id\u0027])"},{"line_number":63,"context_line":"        # check that user no longer exists"},{"line_number":64,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":65,"context_line":"                          self.oauth_consumers_client.show_consumer,"},{"line_number":66,"context_line":"                          consumer[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a1ff146_c7294e8b","line":63,"range":{"start_line":63,"start_character":21,"end_line":63,"end_character":25},"updated":"2017-03-16 06:03:48.000000000","message":"should be consumer","commit_id":"8a15e4a4b23f3be1a09418f8f139fb2f7ccbf4aa"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"08c4372df0908cd840075759dc34cc31f4116a6c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return (consumer, description)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u00272b900905-388f-4d5f-8602-f026041fb95d\u0027)"},{"line_number":38,"context_line":"    @test.idempotent_id(\u0027c8307ea6-a86c-47fd-ae7b-5b3b2caca76d\u0027)"},{"line_number":39,"context_line":"    def test_create_and_show_consumer(self):"},{"line_number":40,"context_line":"        \"\"\"Tests to make sure that a consumer with parameters is made\"\"\""},{"line_number":41,"context_line":"        consumer, description \u003d self._create_consumer()"}],"source_content_type":"text/x-python","patch_set":31,"id":"1a1ced50_cc9ffeb2","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":63},"updated":"2017-03-16 19:15:42.000000000","message":"Remove this. Should just have @decorators.idempotent_id.","commit_id":"e78a8615b7985a3fb3a62fdc78dff60dee5bf30e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"08c4372df0908cd840075759dc34cc31f4116a6c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                         fetched_consumer[\u0027description\u0027])"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @decorators.idempotent_id(\u002735a6bfad-78cb-4c11-81be-afe0f2cfcf89\u0027)"},{"line_number":53,"context_line":"    @test.idempotent_id(\u0027fdfa1b7f-2a31-4354-b2c7-f6ae20554f93\u0027)"},{"line_number":54,"context_line":"    def test_delete_consumer(self):"},{"line_number":55,"context_line":"        \"\"\"Tests the delete function.\"\"\""},{"line_number":56,"context_line":"        consumer, _ \u003d self._create_consumer()"}],"source_content_type":"text/x-python","patch_set":31,"id":"1a1ced50_0caaf6d4","line":53,"range":{"start_line":53,"start_character":4,"end_line":53,"end_character":63},"updated":"2017-03-16 19:15:42.000000000","message":"See above.","commit_id":"e78a8615b7985a3fb3a62fdc78dff60dee5bf30e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"08c4372df0908cd840075759dc34cc31f4116a6c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                          consumer[\u0027id\u0027])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @decorators.idempotent_id(\u002757120ee6-95ac-4c51-b295-7ddc8ee9d764\u0027)"},{"line_number":69,"context_line":"    @test.idempotent_id(\u0027080a9b1a-c009-47c0-9979-5305bf72e3dc\u0027)"},{"line_number":70,"context_line":"    def test_update_consumer(self):"},{"line_number":71,"context_line":"        \"\"\"Tests the update functionality\"\"\""},{"line_number":72,"context_line":"        # create a new consumer to update"}],"source_content_type":"text/x-python","patch_set":31,"id":"1a1ced50_4caceeed","line":69,"range":{"start_line":69,"start_character":4,"end_line":69,"end_character":63},"updated":"2017-03-16 19:15:42.000000000","message":"See above.","commit_id":"e78a8615b7985a3fb3a62fdc78dff60dee5bf30e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"08c4372df0908cd840075759dc34cc31f4116a6c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.assertEqual(new_description, updated_consumer[\u0027description\u0027])"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @decorators.idempotent_id(\u0027f40cb084-cbea-49e3-b51c-cbf756b975b5\u0027)"},{"line_number":85,"context_line":"    @test.idempotent_id(\u002709ca50de-78f2-4ffb-ac71-f2254036b2b8\u0027)"},{"line_number":86,"context_line":"    def test_list_consumers(self):"},{"line_number":87,"context_line":"        \"\"\"Test for listing consumers\"\"\""},{"line_number":88,"context_line":"        # create two consumers to populate list"}],"source_content_type":"text/x-python","patch_set":31,"id":"1a1ced50_8cb6e63b","line":85,"range":{"start_line":85,"start_character":4,"end_line":85,"end_character":63},"updated":"2017-03-16 19:15:42.000000000","message":"See above.","commit_id":"e78a8615b7985a3fb3a62fdc78dff60dee5bf30e"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"13caa84efb1dc417b32fdc2e1c2d777a860c26a6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        fetched_consumer \u003d self.oauth_consumers_client.show_consumer("},{"line_number":56,"context_line":"            consumer[\u0027id\u0027])[\u0027consumer\u0027]"},{"line_number":57,"context_line":"        self.assertEqual(consumer[\u0027id\u0027], fetched_consumer[\u0027id\u0027])"},{"line_number":58,"context_line":"        # delete existing user"},{"line_number":59,"context_line":"        self.oauth_consumers_client.delete_consumer(consumer[\u0027id\u0027])"},{"line_number":60,"context_line":"        # check that consumer no longer exists"},{"line_number":61,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a1ced50_de4cf778","line":58,"range":{"start_line":58,"start_character":26,"end_line":58,"end_character":30},"updated":"2017-03-17 02:44:48.000000000","message":"consumer","commit_id":"c2700016a418475094b0cff9f19bc42077773c08"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"13caa84efb1dc417b32fdc2e1c2d777a860c26a6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"    def test_update_consumer(self):"},{"line_number":67,"context_line":"        \"\"\"Tests the update functionality\"\"\""},{"line_number":68,"context_line":"        # create a new consumer to update"},{"line_number":69,"context_line":"        consumer, description \u003d self._create_consumer()"},{"line_number":70,"context_line":"        # create new description"},{"line_number":71,"context_line":"        new_description \u003d data_utils.rand_name(\u0027test_update_consumer\u0027)"},{"line_number":72,"context_line":"        # update consumer"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a1ced50_be481b5d","line":69,"range":{"start_line":69,"start_character":18,"end_line":69,"end_character":29},"updated":"2017-03-17 02:44:48.000000000","message":"use underscore","commit_id":"c2700016a418475094b0cff9f19bc42077773c08"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0f63acc33e378b149ec662ea34fdd94c7f499c17","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class OAUTHConsumersV3Test(base.BaseIdentityV3AdminTest):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def _create_consumer(self):"},{"line_number":26,"context_line":"        \"\"\"Creates a consumer with a random description.\"\"\""},{"line_number":27,"context_line":"        description \u003d data_utils.rand_name(\u0027test_create_consumer\u0027)"},{"line_number":28,"context_line":"        consumer \u003d self.oauth_consumers_client.create_consumer("}],"source_content_type":"text/x-python","patch_set":34,"id":"1a1ced50_d90c7aee","line":25,"range":{"start_line":25,"start_character":8,"end_line":25,"end_character":24},"updated":"2017-03-21 23:37:38.000000000","message":"you don\u0027t need to return the description since you are already returning the \"consumer\" object, it already contains the description.","commit_id":"f1644d2349a4ebfea08572ab42b6bd96996c1a5c"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0f63acc33e378b149ec662ea34fdd94c7f499c17","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":32,"context_line":"                        self.oauth_consumers_client.delete_consumer,"},{"line_number":33,"context_line":"                        consumer[\u0027id\u0027])"},{"line_number":34,"context_line":"        return (consumer, description)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @decorators.idempotent_id(\u0027c8307ea6-a86c-47fd-ae7b-5b3b2caca76d\u0027)"},{"line_number":37,"context_line":"    def test_create_and_show_consumer(self):"}],"source_content_type":"text/x-python","patch_set":34,"id":"1a1ced50_7950e6d4","line":34,"range":{"start_line":34,"start_character":15,"end_line":34,"end_character":16},"updated":"2017-03-21 23:37:38.000000000","message":"nit: you don\u0027t need the ()","commit_id":"f1644d2349a4ebfea08572ab42b6bd96996c1a5c"}],"tempest/api/identity/base.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        cls.groups_client \u003d cls.os_adm.groups_client"},{"line_number":202,"context_line":"        cls.projects_client \u003d cls.os_adm.projects_client"},{"line_number":203,"context_line":"        cls.role_assignments \u003d cls.os_admin.role_assignments_client"},{"line_number":204,"context_line":"        cls.consumers_client \u003d cls.os_adm.consumers_v3_client"},{"line_number":205,"context_line":"        if CONF.identity.admin_domain_scope:"},{"line_number":206,"context_line":"            # NOTE(andreaf) When keystone policy requires it, the identity"},{"line_number":207,"context_line":"            # admin clients for these tests shall use \u0027domain\u0027 scoped tokens."}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_7b6160d3","line":204,"range":{"start_line":204,"start_character":12,"end_line":204,"end_character":28},"updated":"2017-02-16 13:26:59.000000000","message":"suggest \"oauth_consumers_client\" or just \"oauth_consumers\"","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"}],"tempest/clients.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        self.credentials_client \u003d self.identity_v3.CredentialsClient("},{"line_number":226,"context_line":"            **params_v3)"},{"line_number":227,"context_line":"        self.groups_client \u003d self.identity_v3.GroupsClient(**params_v3)"},{"line_number":228,"context_line":"        self.consumers_v3_client \u003d self.identity_v3.ConsumerClient("},{"line_number":229,"context_line":"            **params_v3)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # Token clients do not use the catalog. They only need default_params."}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_5b3d7cba","line":228,"range":{"start_line":228,"start_character":13,"end_line":228,"end_character":32},"updated":"2017-02-16 13:26:59.000000000","message":"suggest \"oauth_consumers_client\"","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"}],"tempest/lib/services/identity/v3/__init__.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ab601aaaa30d2454d7e51c018a7d63d007ff397c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"# the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#    http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#\t"},{"line_number":9,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_52ca8c50","line":8,"range":{"start_line":8,"start_character":1,"end_line":8,"end_character":2},"updated":"2017-02-17 14:40:50.000000000","message":"remove this","commit_id":"bc6b5034f4eec55a128760e6ebe6e9fe60bcc89b"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"3ac725def348b105f2223c1f91d46156efaa482c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"           \u0027GroupsClient\u0027, \u0027IdentityClient\u0027, \u0027InheritedRolesClient\u0027,"},{"line_number":39,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":40,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":41,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027,"},{"line_number":42,"context_line":"           \u0027OAUTHConsumerClient\u0027]"}],"source_content_type":"text/x-python","patch_set":35,"id":"ffe62b97_ce6d5d99","line":42,"range":{"start_line":41,"start_character":11,"end_line":42,"end_character":33},"updated":"2017-03-27 01:20:47.000000000","message":"Are these supposed to be listed alphabetically? Then again, V3TokenClient is already not.","commit_id":"8e2d403283f160b0dbc7d8cdbb42e7a432da0a38"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a1f9fbd4b73049d11b79ca00dd0616eddc1da578","unresolved":false,"context_lines":[{"line_number":38,"context_line":"           \u0027GroupsClient\u0027, \u0027IdentityClient\u0027, \u0027InheritedRolesClient\u0027,"},{"line_number":39,"context_line":"           \u0027PoliciesClient\u0027, \u0027ProjectsClient\u0027, \u0027RegionsClient\u0027,"},{"line_number":40,"context_line":"           \u0027RoleAssignmentsClient\u0027, \u0027RolesClient\u0027, \u0027ServicesClient\u0027,"},{"line_number":41,"context_line":"           \u0027V3TokenClient\u0027, \u0027TrustsClient\u0027, \u0027UsersClient\u0027, \u0027VersionsClient\u0027,"},{"line_number":42,"context_line":"           \u0027OAUTHConsumerClient\u0027]"}],"source_content_type":"text/x-python","patch_set":35,"id":"ffe62b97_48e9efb4","line":42,"range":{"start_line":41,"start_character":11,"end_line":42,"end_character":33},"in_reply_to":"ffe62b97_ce6d5d99","updated":"2017-03-28 14:06:46.000000000","message":"I guess this can be fixed in a follow up patch :)","commit_id":"8e2d403283f160b0dbc7d8cdbb42e7a432da0a38"}],"tempest/lib/services/identity/v3/consumers_client.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_7b1c006b","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":1},"updated":"2017-02-16 13:26:59.000000000","message":"please remove this header or update with the copy right from your company.","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.lib.common import rest_client"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ConsumerClient(rest_client.RestClient):"},{"line_number":22,"context_line":"    api_version \u003d \"v3\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_8005bf15","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":20},"updated":"2017-02-16 13:26:59.000000000","message":"suggest \"OAUTHConsumerClient\", I was confused to see this client name because the \"Consumer\" API was a new thing for me.","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d02d74192dd478bcc8daadc71164ace490432269","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":28,"context_line":"        API reference:"},{"line_number":29,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#create-consumer"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        post_body \u003d {\"description\": description}"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_80577f25","line":28,"range":{"start_line":27,"start_character":8,"end_line":28,"end_character":21},"updated":"2017-02-16 13:26:59.000000000","message":"you can explain the \"description\" parameter here since it is the only parameter of this call. The API reference is nice to have, though.\n\nThe same comment applies to all methods below.","commit_id":"cae095703fc88b48fdcb667c05aae76447dc990d"}],"tempest/lib/services/identity/v3/oauth_consumers_client.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"ab601aaaa30d2454d7e51c018a7d63d007ff397c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":28,"context_line":"        API reference:"},{"line_number":29,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#create-consumer"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        post_body \u003d {\"description\": description}"},{"line_number":32,"context_line":"        post_body \u003d json.dumps({\u0027consumer\u0027: post_body})"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_72f310a0","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":79},"updated":"2017-02-17 14:40:50.000000000","message":"comment about the docstring of the parameters in the previous patchset still applies.","commit_id":"bc6b5034f4eec55a128760e6ebe6e9fe60bcc89b"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a427757e60c13903d0e6b01fe9536655d888fdb6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":28,"context_line":"        API reference:"},{"line_number":29,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#create-consumer"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        post_body \u003d {\"description\": description}"},{"line_number":32,"context_line":"        post_body \u003d json.dumps({\u0027consumer\u0027: post_body})"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_7c3afece","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":79},"in_reply_to":"fa31d9ce_0c663329","updated":"2017-02-17 18:10:37.000000000","message":"they are similar because they have plenty of required and optional parameters. Here we only have \"description\".","commit_id":"bc6b5034f4eec55a128760e6ebe6e9fe60bcc89b"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"f502d0b3186a2dab45713584f22e92af5a03b81f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":28,"context_line":"        API reference:"},{"line_number":29,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#create-consumer"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        post_body \u003d {\"description\": description}"},{"line_number":32,"context_line":"        post_body \u003d json.dumps({\u0027consumer\u0027: post_body})"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa31d9ce_0c663329","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":79},"in_reply_to":"fa31d9ce_72f310a0","updated":"2017-02-17 17:32:20.000000000","message":"The comments on existing clients are similar to this. Are you saying that you think I should add something extra like:\nParam description(optional): The only editable argument for consumers","commit_id":"bc6b5034f4eec55a128760e6ebe6e9fe60bcc89b"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b1990fc60de12699d71fb61a4cd4f3b8b5254e0b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param description(optional): Editable field for notes on consumer"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":30,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_7d731f4e","line":27,"range":{"start_line":27,"start_character":14,"end_line":27,"end_character":15},"updated":"2017-02-17 22:24:37.000000000","message":"missing type:\n\n  :param str description: ...","commit_id":"d5f07462db81cd70cb4a662aec54cbdbf3669751"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b1990fc60de12699d71fb61a4cd4f3b8b5254e0b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param description(optional): Editable field for notes on consumer"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":30,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_3d79a730","line":27,"range":{"start_line":27,"start_character":26,"end_line":27,"end_character":36},"updated":"2017-02-17 22:24:37.000000000","message":"remove this","commit_id":"d5f07462db81cd70cb4a662aec54cbdbf3669751"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b1990fc60de12699d71fb61a4cd4f3b8b5254e0b","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def delete_consumer(self, consumer_id):"},{"line_number":41,"context_line":"        \"\"\"Deletes a consumer."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":44,"context_line":"        API reference:"},{"line_number":45,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#delete-consumer"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_5d765b3f","line":42,"updated":"2017-02-17 22:24:37.000000000","message":"add consumer_id in the docstring","commit_id":"d5f07462db81cd70cb4a662aec54cbdbf3669751"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b1990fc60de12699d71fb61a4cd4f3b8b5254e0b","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def update_consumer(self, consumer_id, description):"},{"line_number":52,"context_line":"        \"\"\"Updates a consumer."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        :param description(optional): Editable field for notes on consumer"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        For a full list of available parameters, please refer to the official"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_9d8e1326","line":53,"updated":"2017-02-17 22:24:37.000000000","message":"missing consumer_id in the docstring","commit_id":"d5f07462db81cd70cb4a662aec54cbdbf3669751"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b1990fc60de12699d71fb61a4cd4f3b8b5254e0b","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def show_consumer(self, consumer_id):"},{"line_number":69,"context_line":"        \"\"\"Show consumer details."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":72,"context_line":"        API reference:"},{"line_number":73,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#show-consumer-details"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_dd988b6d","line":70,"updated":"2017-02-17 22:24:37.000000000","message":"missing consumer_id in the docstring","commit_id":"d5f07462db81cd70cb4a662aec54cbdbf3669751"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b1990fc60de12699d71fb61a4cd4f3b8b5254e0b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def list_consumers(self):"},{"line_number":81,"context_line":"        \"\"\"List all consumers."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        For a full list of available parameters, please refer to the official"},{"line_number":84,"context_line":"        API reference:"},{"line_number":85,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#list-consumers"},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        resp, body \u003d self.get(\u0027OS-OAUTH1/consumers\u0027)"},{"line_number":88,"context_line":"        self.expected_success(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_fd9d4f5a","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":78},"updated":"2017-02-17 22:24:37.000000000","message":"we don\u0027t have any parameters","commit_id":"d5f07462db81cd70cb4a662aec54cbdbf3669751"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8aa2a6601728b4969080e8ec180137d2f44c3a76","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def create_consumer(self, description\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Creates a consumer."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param str description: Editable field for notes on consumer"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        For more information, please refer to the official"},{"line_number":30,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_a7cab49f","line":27,"range":{"start_line":27,"start_character":32,"end_line":27,"end_character":68},"updated":"2017-02-20 21:33:32.000000000","message":"what do you think about: Optional field to add notes about the consumer.","commit_id":"02aa7ce2ecc5c5375038de6de1884d03bf4bd443"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8aa2a6601728b4969080e8ec180137d2f44c3a76","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def delete_consumer(self, consumer_id):"},{"line_number":41,"context_line":"        \"\"\"Deletes a consumer."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        :param str consumer_id: The id of the consumer that will be deleted"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        For more information, please refer to the official"},{"line_number":46,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_67827c54","line":43,"range":{"start_line":43,"start_character":36,"end_line":43,"end_character":38},"updated":"2017-02-20 21:33:32.000000000","message":"ID","commit_id":"02aa7ce2ecc5c5375038de6de1884d03bf4bd443"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8aa2a6601728b4969080e8ec180137d2f44c3a76","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    def update_consumer(self, consumer_id, description):"},{"line_number":54,"context_line":"        \"\"\"Updates a consumer."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        :param str description: Field that will be updated"},{"line_number":57,"context_line":"        :param str consumer_id: The id of the consumer that will be updated"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        For more information, please refer to the official"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_e7c4ac93","line":56,"range":{"start_line":56,"start_character":32,"end_line":56,"end_character":58},"updated":"2017-02-20 21:33:32.000000000","message":"Optional field to add notes about the consumer.","commit_id":"02aa7ce2ecc5c5375038de6de1884d03bf4bd443"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8aa2a6601728b4969080e8ec180137d2f44c3a76","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        \"\"\"Updates a consumer."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        :param str description: Field that will be updated"},{"line_number":57,"context_line":"        :param str consumer_id: The id of the consumer that will be updated"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        For more information, please refer to the official"},{"line_number":60,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_a77c7473","line":57,"range":{"start_line":57,"start_character":36,"end_line":57,"end_character":38},"updated":"2017-02-20 21:33:32.000000000","message":"ID","commit_id":"02aa7ce2ecc5c5375038de6de1884d03bf4bd443"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8aa2a6601728b4969080e8ec180137d2f44c3a76","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def show_consumer(self, consumer_id):"},{"line_number":72,"context_line":"        \"\"\"Show consumer details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        :param str consumer_id: The id of the consumer that will be shown"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        For more information, please refer to the official"},{"line_number":77,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da36d5c6_c781684c","line":74,"range":{"start_line":74,"start_character":36,"end_line":74,"end_character":38},"updated":"2017-02-20 21:33:32.000000000","message":"ID","commit_id":"02aa7ce2ecc5c5375038de6de1884d03bf4bd443"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"9b6a8a6e98fe6149fc2f4689978cf9aeac551021","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":51,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def update_consumer(self, consumer_id, description):"},{"line_number":54,"context_line":"        \"\"\"Updates a consumer."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        :param str description: Optional field to add notes about the consumer"}],"source_content_type":"text/x-python","patch_set":13,"id":"da36d5c6_265b1489","line":53,"range":{"start_line":53,"start_character":43,"end_line":53,"end_character":54},"updated":"2017-02-21 12:23:01.000000000","message":"description\u003dNone, since it is optional.","commit_id":"7893beb419efda569eb141f9a05f25c241375f74"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"13caa84efb1dc417b32fdc2e1c2d777a860c26a6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        \"\"\"Updates a consumer."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        :param str description: Optional field to add notes about the consumer"},{"line_number":57,"context_line":"        :param str consumer_id: The ID of the consumer that will be updated"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        For more information, please refer to the official"},{"line_number":60,"context_line":"        API reference:"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a1ced50_defeb704","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":75},"updated":"2017-03-17 02:44:48.000000000","message":"move this line up","commit_id":"c2700016a418475094b0cff9f19bc42077773c08"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a1f9fbd4b73049d11b79ca00dd0616eddc1da578","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        API reference:"},{"line_number":47,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#delete-consumer"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        resp, body \u003d self.delete(\u0027OS-OAUTH1/consumers/%s\u0027 % consumer_id)"},{"line_number":50,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":51,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"ffe62b97_48020f71","line":49,"range":{"start_line":49,"start_character":34,"end_line":49,"end_character":43},"updated":"2017-03-28 14:06:46.000000000","message":"this could be an attribute of the class","commit_id":"8e2d403283f160b0dbc7d8cdbb42e7a432da0a38"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"74c27a509685b4146141564b3170d9491dc886d6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        API reference:"},{"line_number":47,"context_line":"        http://developer.openstack.org/api-ref/identity/v3-ext/#delete-consumer"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        resp, body \u003d self.delete(\u0027OS-OAUTH1/consumers/%s\u0027 % consumer_id)"},{"line_number":50,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":51,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"dfeb2761_26c65b69","line":49,"range":{"start_line":49,"start_character":34,"end_line":49,"end_character":43},"in_reply_to":"ffe62b97_48020f71","updated":"2017-03-31 16:06:26.000000000","message":"Good as it is.","commit_id":"8e2d403283f160b0dbc7d8cdbb42e7a432da0a38"}],"tempest/tests/lib/services/identity/v3/test_oauth_consumers_client.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"3ac725def348b105f2223c1f91d46156efaa482c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            \u0027next\u0027: None,"},{"line_number":45,"context_line":"            \u0027previous\u0027: None"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        \u0027consumers\u0027: ["},{"line_number":48,"context_line":"            {"},{"line_number":49,"context_line":"                \u0027id\u0027: \u00276392c7d3b7a2062e09a07aa377\u0027,"},{"line_number":50,"context_line":"                \u0027links\u0027: {"}],"source_content_type":"text/x-python","patch_set":35,"id":"ffe62b97_0e222553","line":47,"range":{"start_line":47,"start_character":9,"end_line":47,"end_character":18},"updated":"2017-03-27 01:20:47.000000000","message":"nit: this list doesn\u0027t need to be this long. One entry should suffice.","commit_id":"8e2d403283f160b0dbc7d8cdbb42e7a432da0a38"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"74c27a509685b4146141564b3170d9491dc886d6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            \u0027next\u0027: None,"},{"line_number":45,"context_line":"            \u0027previous\u0027: None"},{"line_number":46,"context_line":"        },"},{"line_number":47,"context_line":"        \u0027consumers\u0027: ["},{"line_number":48,"context_line":"            {"},{"line_number":49,"context_line":"                \u0027id\u0027: \u00276392c7d3b7a2062e09a07aa377\u0027,"},{"line_number":50,"context_line":"                \u0027links\u0027: {"}],"source_content_type":"text/x-python","patch_set":35,"id":"dfeb2761_66910353","line":47,"range":{"start_line":47,"start_character":9,"end_line":47,"end_character":18},"in_reply_to":"ffe62b97_0e222553","updated":"2017-03-31 16:06:26.000000000","message":"2-3","commit_id":"8e2d403283f160b0dbc7d8cdbb42e7a432da0a38"}]}
