)]}'
{"patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py":[{"author":{"_account_id":23659,"name":"Jaewoo Park","email":"jaewoopark91@gmail.com","username":"aselius"},"change_message_id":"3ab0a37fba95564cf4a800b33f3ae6211bfb36dd","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_ae756c32","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":22},"updated":"2017-01-31 23:47:18.000000000","message":"should this be resource_setup or setup_clients?\nand i feel like we can have specific os clients in the tests themselves with its own setup_client. Having all the clients called in here after would probably be overcluttering the base","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"aa58e2662ac32f6befe9f7964909946a56f81d6e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                \"%s skipped because tempest roles is not admin\" % cls.__name__)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_84a16f96","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":22},"in_reply_to":"3a461143_ae756c32","updated":"2017-02-01 01:01:04.000000000","message":"Jaewoo\u0027s right, this should be setup_clients. And some clients will be used in multiple tests","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23185,"name":"Samantha Blanco","email":"samantha.blanco@att.com","username":"sblanco"},"change_message_id":"e23c7f4f03342d5c645bfda8c5297e4e6a29b7fc","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"},{"line_number":41,"context_line":"        cls.users_client \u003d cls.os.users_v3_client"},{"line_number":42,"context_line":"        cls.projects_client \u003d cls.os.projects_client"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_b2efbfe7","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":52},"updated":"2017-01-30 21:42:52.000000000","message":"Please use the admin clients if these are being called as part of an admin test","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"54dbbde12f5734f707cc55b24f399a11870bb5b2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).setup_clients()"},{"line_number":39,"context_line":"        cls.auth_provider \u003d cls.os.auth_provider"},{"line_number":40,"context_line":"        cls.admin_client \u003d cls.os_adm.identity_v3_client"},{"line_number":41,"context_line":"        cls.users_client \u003d cls.os.users_v3_client"},{"line_number":42,"context_line":"        cls.projects_client \u003d cls.os.projects_client"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_45403b08","line":42,"range":{"start_line":41,"start_character":8,"end_line":42,"end_character":52},"updated":"2017-02-01 22:34:00.000000000","message":"Same comments as Change-Id-I03a38115bb2fc9dcdebd83c55e429e5e8a1211b5.  It is better to re-use the Tempest clients when possible.","commit_id":"0bf3a71d1327a510783f396616db9db5d533e767"}],"patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    def test_create_project(self):"},{"line_number":39,"context_line":"        \"\"\"Create a Project."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        $ openstack project create"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":44,"context_line":"        self.setup_test_project()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_c1fb7b77","line":41,"range":{"start_line":41,"start_character":8,"end_line":41,"end_character":34},"updated":"2017-01-31 16:22:28.000000000","message":"I think these CLI-formatted comments do not add to the descriptiveness of the comment. Comments should use English, not code IMO.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    def test_update_project(self):"},{"line_number":50,"context_line":"        \"\"\"Update a Project."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        $ openstack project set PROJECT_ID --description"},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        tenant \u003d self.setup_test_project()"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_a1374f4b","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":56},"updated":"2017-01-31 16:22:28.000000000","message":"See above.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":61,"context_line":"                                 rule\u003d\"identity:delete_project\")"},{"line_number":62,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-1564-080044d0d906\u0027)"},{"line_number":63,"context_line":"    def test_delete_project(self):"},{"line_number":64,"context_line":"        \"\"\"Update a Project."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        $ openstack project delete PROJECT_ID"},{"line_number":67,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_8134134a","line":64,"range":{"start_line":63,"start_character":0,"end_line":64,"end_character":28},"updated":"2017-01-31 16:22:28.000000000","message":"Comment inconsistency with method name.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    def test_delete_project(self):"},{"line_number":64,"context_line":"        \"\"\"Update a Project."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        $ openstack project delete PROJECT_ID"},{"line_number":67,"context_line":"        \"\"\""},{"line_number":68,"context_line":"        tenant \u003d self.setup_test_project()"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_e13dd72b","line":66,"range":{"start_line":66,"start_character":8,"end_line":66,"end_character":45},"updated":"2017-01-31 16:22:28.000000000","message":"See above.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    def test_show_project(self):"},{"line_number":77,"context_line":"        \"\"\"Show a project."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        $ openstack project show PROJECT_ID"},{"line_number":80,"context_line":"        \"\"\""},{"line_number":81,"context_line":"        tenant \u003d self.setup_test_project()"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_21443fb5","line":79,"range":{"start_line":79,"start_character":8,"end_line":79,"end_character":43},"updated":"2017-01-31 16:22:28.000000000","message":"See above.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_list_projects(self):"},{"line_number":90,"context_line":"        \"\"\"List all projects."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        $ openstack project list"},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":95,"context_line":"        self.projects_client.list_projects()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_611807d4","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":32},"updated":"2017-01-31 16:22:28.000000000","message":"See above.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23659,"name":"Jaewoo Park","email":"jaewoopark91@gmail.com","username":"aselius"},"change_message_id":"3ab0a37fba95564cf4a800b33f3ae6211bfb36dd","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self.projects_client.list_projects()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":98,"context_line":"    \t\t\t\t\t\t\t rule\u003d\"identity:list_user_projects\")"},{"line_number":99,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-1564-080044d0d909\u0027)"},{"line_number":100,"context_line":"    def test_list_user_projects(self):"},{"line_number":101,"context_line":"        \"\"\"List User Projects."}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_cea718a5","line":98,"range":{"start_line":98,"start_character":10,"end_line":98,"end_character":12},"updated":"2017-01-31 23:47:18.000000000","message":"indenting is off, probably causing pep8 jenkins to fail","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"748a569d32c83754a00db235db5c78a53c39f96e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    def test_list_user_projects(self):"},{"line_number":101,"context_line":"        \"\"\"List User Projects."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        $ openstack project list --user USER_ID"},{"line_number":104,"context_line":"        \"\"\""},{"line_number":105,"context_line":"        user \u003d self.setup_test_user()"},{"line_number":106,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":1,"id":"3a461143_c129bbe7","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":47},"updated":"2017-01-31 16:22:28.000000000","message":"See above.","commit_id":"a7eaf86bad9f8b5ea7985aa8d3743796fa1f71eb"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"54dbbde12f5734f707cc55b24f399a11870bb5b2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                 rule\u003d\"identity:create_project\")"},{"line_number":36,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-1564-080044d0d904\u0027)"},{"line_number":37,"context_line":"    def test_create_project(self):"},{"line_number":38,"context_line":"        \"\"\"Create a Project."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        RBAC test for Keystone: project create"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":43,"context_line":"        self.setup_test_project()"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_8571437a","line":41,"range":{"start_line":38,"start_character":8,"end_line":41,"end_character":11},"updated":"2017-02-01 22:34:00.000000000","message":"Same comment about doc-strings as on Change-Id: I03a38115bb2fc9dcdebd83c55e429e5e8a1211b5","commit_id":"0bf3a71d1327a510783f396616db9db5d533e767"},{"author":{"_account_id":23625,"name":"Nicolas Helgeson","email":"nh202b@att.com","username":"nhelgeson"},"change_message_id":"55a1a1a9b80f1c42152cdb2de9f7a6e553b894f4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":94,"context_line":"        self.projects_client.list_projects()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":97,"context_line":"                                 rule\u003d\"identity:list_user_projects\")"},{"line_number":98,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-1564-080044d0d909\u0027)"},{"line_number":99,"context_line":"    def test_list_user_projects(self):"},{"line_number":100,"context_line":"        \"\"\"List User\u0027s Projects."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        RBAC test for Keystone: project list"},{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        user \u003d self.setup_test_user()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":107,"context_line":"        self.users_client.list_user_projects(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_5d2aaee8","line":107,"range":{"start_line":96,"start_character":3,"end_line":107,"end_character":56},"updated":"2017-02-02 18:10:01.000000000","message":"This test uses the users client to check a users projects, should it technically be moved to the users tests?","commit_id":"0bf3a71d1327a510783f396616db9db5d533e767"},{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"60f9fe08f231c30f732aa2f059473dd62b0c03d4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":94,"context_line":"        self.projects_client.list_projects()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":97,"context_line":"                                 rule\u003d\"identity:list_user_projects\")"},{"line_number":98,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-1564-080044d0d909\u0027)"},{"line_number":99,"context_line":"    def test_list_user_projects(self):"},{"line_number":100,"context_line":"        \"\"\"List User\u0027s Projects."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        RBAC test for Keystone: project list"},{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        user \u003d self.setup_test_user()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":107,"context_line":"        self.users_client.list_user_projects(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_ea28eb87","line":107,"range":{"start_line":96,"start_character":3,"end_line":107,"end_character":56},"in_reply_to":"3a461143_5d2aaee8","updated":"2017-02-02 19:46:38.000000000","message":"I would think that is correct.","commit_id":"0bf3a71d1327a510783f396616db9db5d533e767"}],"patrole_tempest_plugin/tests/api/identity/v3/test_users_rbac.py":[{"author":{"_account_id":23184,"name":"DavidPurcell","email":"d.purcell222@gmail.com","username":"DavidPurcell"},"change_message_id":"4b2c3d3efa31b0376672962077a68cff21502d6a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Corporation."},{"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"},{"line_number":7,"context_line":"#"},{"line_number":8,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":9,"context_line":"#"},{"line_number":10,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":11,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import config"},{"line_number":17,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":18,"context_line":"from tempest.lib import decorators"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from patrole_tempest_plugin import rbac_rule_validation"},{"line_number":21,"context_line":"from patrole_tempest_plugin.rbac_utils import rbac_utils"},{"line_number":22,"context_line":"from patrole_tempest_plugin.tests.api.identity.v3 import rbac_base"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d config.CONF"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class IdentityUserV3AdminRbacTest("},{"line_number":28,"context_line":"        rbac_base.BaseIdentityV3RbacAdminTest):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def tearDown(self):"},{"line_number":31,"context_line":"        \"\"\"Reverts user back to admin for cleanup.\"\"\""},{"line_number":32,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dFalse)"},{"line_number":33,"context_line":"        super(IdentityUserV3AdminRbacTest, self).tearDown()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":36,"context_line":"                                 rule\u003d\"identity:create_user\")"},{"line_number":37,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d904\u0027)"},{"line_number":38,"context_line":"    def test_create_user(self):"},{"line_number":39,"context_line":"        \"\"\"Creates a user."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        RBAC test for Keystone: identity:create_user"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_create_user\u0027)"},{"line_number":44,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":45,"context_line":"        self.non_admin_users_client.create_user(name\u003duser_name)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":48,"context_line":"                                 rule\u003d\"identity:update_user\")"},{"line_number":49,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d905\u0027)"},{"line_number":50,"context_line":"    def test_update_user(self):"},{"line_number":51,"context_line":"        \"\"\"Updates a user."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        RBAC test for Keystone: identity:update_user"},{"line_number":54,"context_line":"        \"\"\""},{"line_number":55,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_update_user\u0027)"},{"line_number":56,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":59,"context_line":"        self.non_admin_users_client.update_user(user[\u0027id\u0027],"},{"line_number":60,"context_line":"                                                name\u003duser_name,"},{"line_number":61,"context_line":"                                                email\u003d\"changedUser@xyz.com\")"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":64,"context_line":"                                 rule\u003d\"identity:delete_user\")"},{"line_number":65,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d906\u0027)"},{"line_number":66,"context_line":"    def test_delete_user(self):"},{"line_number":67,"context_line":"        \"\"\"Get the list of users."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        RBAC test for Keystone: identity:delete_user"},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_delete_user\u0027)"},{"line_number":72,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":75,"context_line":"        self.non_admin_users_client.delete_user(user[\u0027id\u0027])"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":78,"context_line":"                                 rule\u003d\"identity:list_users\")"},{"line_number":79,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d907\u0027)"},{"line_number":80,"context_line":"    def test_list_users(self):"},{"line_number":81,"context_line":"        \"\"\"Get the list of users."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        RBAC test for Keystone: identity:list_users"},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":86,"context_line":"        self.non_admin_users_client.list_users()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":89,"context_line":"                                 rule\u003d\"identity:get_user\")"},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d908\u0027)"},{"line_number":91,"context_line":"    def test_show_user(self):"},{"line_number":92,"context_line":"        \"\"\"Get one user."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        RBAC test for Keystone: identity:get_user"},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_get_user\u0027)"},{"line_number":97,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":100,"context_line":"        self.non_admin_users_client.show_user(user[\u0027id\u0027])"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":103,"context_line":"                                 rule\u003d\"identity:change_password\")"},{"line_number":104,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-4522-080044d0d90a\u0027)"},{"line_number":105,"context_line":"    def test_change_password(self):"},{"line_number":106,"context_line":"        \"\"\"Update a user password"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        RBAC test for Keystone: identity:change_password"},{"line_number":109,"context_line":"        \"\"\""},{"line_number":110,"context_line":"        user_name \u003d data_utils.rand_name(\u0027test_change_password\u0027)"},{"line_number":111,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003d\u0027nova\u0027)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":114,"context_line":"        self.non_admin_users_client \\"},{"line_number":115,"context_line":"            .update_user_password(user[\u0027id\u0027],"},{"line_number":116,"context_line":"                                  original_password\u003d\u0027nova\u0027,"},{"line_number":117,"context_line":"                                  password\u003d\u0027neutron\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":120,"context_line":"                                 rule\u003d\"identity:list_groups_for_user\")"},{"line_number":121,"context_line":"    @decorators.idempotent_id(\u0027bd5946d4-46d2-423d-a800-a3e7aabc18b3\u0027)"},{"line_number":122,"context_line":"    def test_list_group_user(self):"},{"line_number":123,"context_line":"        \"\"\"Lists groups which a user belongs to."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        RBAC test for Keystone: identity:list_groups_for_user"},{"line_number":126,"context_line":"        \"\"\""},{"line_number":127,"context_line":"        user_name \u003d data_utils.rand_name(\u0027User\u0027)"},{"line_number":128,"context_line":"        user \u003d self._create_test_user(name\u003duser_name, password\u003dNone)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":131,"context_line":"        self.non_admin_users_client.list_user_groups(user[\u0027id\u0027])"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @rbac_rule_validation.action(service\u003d\"keystone\","},{"line_number":134,"context_line":"                                 rule\u003d\"identity:list_user_projects\")"},{"line_number":135,"context_line":"    @decorators.idempotent_id(\u00270f148510-63bf-11e6-1564-080044d0d909\u0027)"},{"line_number":136,"context_line":"    def test_list_user_projects(self):"},{"line_number":137,"context_line":"        \"\"\"List User\u0027s Projects."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        RBAC test for Keystone: identity:list_user_projects"},{"line_number":140,"context_line":"        \"\"\""},{"line_number":141,"context_line":"        user \u003d self.setup_test_user()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        rbac_utils.switch_role(self, switchToRbacRole\u003dTrue)"},{"line_number":144,"context_line":"        self.non_admin_users_client.list_user_projects(user[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_cb690cfb","line":144,"range":{"start_line":1,"start_character":0,"end_line":144,"end_character":66},"updated":"2017-02-07 22:12:49.000000000","message":"This shouldn\u0027t be part of this commit.","commit_id":"b14b5790f8d92592f2cb32e2e81f34a4185e0511"}]}
