)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"946e5792959369847c2ba84337cf8a1e57afe58a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Donghuai Ren \u003crendh@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-17 02:44:15 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add more role,tenant to user and delete them"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As system administrator,User also have multi role and tenant"},{"line_number":10,"context_line":"Add such case to enhance keystone robustness"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAAWH%2F%2FW14%3D","line":7,"updated":"2014-03-18 12:23:58.000000000","message":"There is a blank missing and the header can be improved.\nFor me the test name assign_multirole_to_user() is more clear than this heading.\nDo you mean role/tenant? inserad of role,tenant?","commit_id":"b56b4a995c45ff7bf53142bd93492084b963a646"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"946e5792959369847c2ba84337cf8a1e57afe58a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add more role,tenant to user and delete them"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As system administrator,User also have multi role and tenant"},{"line_number":10,"context_line":"Add such case to enhance keystone robustness"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I84df22678c0c290fb0c3cc7daac41ad1ac7db563"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAAWH%2F%2FW1g%3D","line":9,"updated":"2014-03-18 12:23:58.000000000","message":"As admin/user ?","commit_id":"b56b4a995c45ff7bf53142bd93492084b963a646"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a682dd586529a6148647001550367369fed76d6c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"As administrator/user, a user also has multi role and"},{"line_number":10,"context_line":"tenants, add such case to enhance keystone robustness"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I84df22678c0c290fb0c3cc7daac41ad1ac7db563"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"AAAAWH%2F9dx8%3D","line":12,"updated":"2014-04-04 10:36:05.000000000","message":"Please add reference of blueprint.\n\nBlueprint: testcases-expansion-icehouse","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"}],"tempest/api/identity/admin/test_roles.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"8b6e4cbcda699b2850331127691421b503ba670e","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":103,"context_line":"    def test_assign_multirole_to_user(self):"},{"line_number":104,"context_line":"        #Assign more than one role to the user,and delete it."},{"line_number":105,"context_line":"        #Add 2 role to one user at same time."},{"line_number":106,"context_line":"        (user, tenant, role) \u003d self._get_role_params()"},{"line_number":107,"context_line":"        self.client.assign_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027], role[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BiSg%3D","line":104,"updated":"2014-02-20 16:51:09.000000000","message":"pep8: space should be used after #.","commit_id":"9c1b77d0a59d0de0d6ea04ab1a02b7e5c76cdcfd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"3b972895aa08506a8557c3b244b2b1cc968a6d7c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                                                  role[\u0027id\u0027])"},{"line_number":120,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027204\u0027)"},{"line_number":121,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":122,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"class RolesTestXML(RolesTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FdPA%3D","line":122,"updated":"2014-02-13 03:15:23.000000000","message":"it should be better to also check the removed role is not in roles list. :-)","commit_id":"9c1b77d0a59d0de0d6ea04ab1a02b7e5c76cdcfd"},{"author":{"_account_id":8085,"name":"anju Tiwari","email":"anjutiwari5@gmail.com","username":"Anju"},"change_message_id":"f54f7304904cbafa47c6f73f41a25f87ee4a5915","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                                                  role[\u0027id\u0027])"},{"line_number":120,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027204\u0027)"},{"line_number":121,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":122,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"class RolesTestXML(RolesTestJSON):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fa54%3D","line":122,"in_reply_to":"AAAAUX%2F%2FdPA%3D","updated":"2014-03-06 06:58:38.000000000","message":"Agree with Liu. Plaese check his comment","commit_id":"9c1b77d0a59d0de0d6ea04ab1a02b7e5c76cdcfd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"5d3a62519ceab9c1dda35e41a5264593fd96d4a3","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027204\u0027)"},{"line_number":123,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":124,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":125,"context_line":"        # Verify remove role not in list any more"},{"line_number":126,"context_line":"        resp, body \u003d self.client.list_roles()"},{"line_number":127,"context_line":"        found \u003d [rolename for rolename in body if rolename[\u0027name\u0027] \u003d\u003d role]"},{"line_number":128,"context_line":"        self.assertFalse(any(found))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2BzTA%3D","line":125,"updated":"2014-03-12 03:06:33.000000000","message":"To verify the removed role not in user\u0027s roles, don\u0027t need to list all roles.\n\n roleids \u003d [ r[\u0027id\u0027] for r in roles ]\n self.assertNotIn(role[\u0027id\u0027], roleids)","commit_id":"505862181479f6e3f1283a100c37d366f8b883e1"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"2d8220c18d54269339272fa28c3e9d24bf15e449","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    @classmethod"},{"line_number":25,"context_line":"    def setUpClass(cls):"},{"line_number":26,"context_line":"        super(RolesTestJSON, cls).setUpClass()"},{"line_number":27,"context_line":"        for _ in xrange(5):"},{"line_number":28,"context_line":"            role_name \u003d data_utils.rand_name(name\u003d\u0027role-\u0027)"},{"line_number":29,"context_line":"            resp, role \u003d cls.client.create_role(role_name)"},{"line_number":30,"context_line":"            cls.data.roles.append(role)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FusE%3D","line":27,"updated":"2014-03-14 06:38:56.000000000","message":"the original code is right. https://review.openstack.org/#/c/74582/","commit_id":"b765aaa97de057e0b651c305c4d6137e6522f1d0"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"946e5792959369847c2ba84337cf8a1e57afe58a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":105,"context_line":"    def test_assign_multirole_to_user(self):"},{"line_number":106,"context_line":"        # Assign more than one role to the user,and delete it."},{"line_number":107,"context_line":"        # Add 2 role to one user at same time."},{"line_number":108,"context_line":"        (user, tenant, role) \u003d self._get_role_params()"},{"line_number":109,"context_line":"        self.client.assign_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027], role[\u0027id\u0027])"},{"line_number":110,"context_line":"        self.data.setup_test_role()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAWH%2F%2FWx8%3D","line":107,"updated":"2014-03-18 12:23:58.000000000","message":"\"2 roles\"","commit_id":"b56b4a995c45ff7bf53142bd93492084b963a646"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8491180cf430d4eaa0ede639036b09d11341db70","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":113,"context_line":"        self.assert_role_in_role_list(role, roles)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":116,"context_line":"    def test_assign_multirole_to_user(self):"},{"line_number":117,"context_line":"        # Assign more than one role to the user,and delete it."},{"line_number":118,"context_line":"        # Add 2 role to one user at same time."}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAWH%2F9n4c%3D","line":115,"updated":"2014-04-03 09:34:23.000000000","message":"-\u003e @test.attr(type\u003d\u0027gate\u0027)","commit_id":"2363ad35f3658d1818478678a6ced1fe367b46a1"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"82a087fca7b561a52e7ce0a8c3c25ed6a6df458e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":116,"context_line":"    def test_assign_multirole_to_user(self):"},{"line_number":117,"context_line":"        # Assign more than one role to the user,and delete it."},{"line_number":118,"context_line":"        # Add 2 role to one user at same time."},{"line_number":119,"context_line":"        (user, tenant, role) \u003d self._get_role_params()"},{"line_number":120,"context_line":"        self.client.assign_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027], role[\u0027id\u0027])"},{"line_number":121,"context_line":"        self.data.setup_test_role()"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9dF4%3D","line":118,"updated":"2014-04-04 12:09:14.000000000","message":"Nit: Assign more than one role to the user and delete it. Add 2 roles to one user at the same time.","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"82a087fca7b561a52e7ce0a8c3c25ed6a6df458e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        self.data.setup_test_role()"},{"line_number":122,"context_line":"        role2 \u003d self.get_role_by_name(self.data.test_role)"},{"line_number":123,"context_line":"        self.client.assign_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027], role2[\u0027id\u0027])"},{"line_number":124,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":125,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":126,"context_line":"        # Add user to 2 tenant at same time"},{"line_number":127,"context_line":"        self.data.setup_test_tenant()"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9dJE%3D","line":124,"updated":"2014-04-04 12:09:14.000000000","message":"Please, add status check here.","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"82a087fca7b561a52e7ce0a8c3c25ed6a6df458e","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        role2 \u003d self.get_role_by_name(self.data.test_role)"},{"line_number":123,"context_line":"        self.client.assign_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027], role2[\u0027id\u0027])"},{"line_number":124,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":125,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":126,"context_line":"        # Add user to 2 tenant at same time"},{"line_number":127,"context_line":"        self.data.setup_test_tenant()"},{"line_number":128,"context_line":"        tenant2 \u003d self.get_tenant_by_name(self.data.test_tenant)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9dKA%3D","line":125,"updated":"2014-04-04 12:09:14.000000000","message":"Could you also check that \"role\" is also still there, so that we can be sure that user has two roles assigned to him at the same time?","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"82a087fca7b561a52e7ce0a8c3c25ed6a6df458e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        self.client.assign_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027], role2[\u0027id\u0027])"},{"line_number":124,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":125,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":126,"context_line":"        # Add user to 2 tenant at same time"},{"line_number":127,"context_line":"        self.data.setup_test_tenant()"},{"line_number":128,"context_line":"        tenant2 \u003d self.get_tenant_by_name(self.data.test_tenant)"},{"line_number":129,"context_line":"        self.client.assign_user_role(tenant2[\u0027id\u0027], user[\u0027id\u0027], role[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9dFI%3D","line":126,"updated":"2014-04-04 12:09:14.000000000","message":"nit: Add user to two tenants at the same time.","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"82a087fca7b561a52e7ce0a8c3c25ed6a6df458e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        resp, body \u003d self.client.remove_user_role(tenant[\u0027id\u0027], user[\u0027id\u0027],"},{"line_number":132,"context_line":"                                                  role[\u0027id\u0027])"},{"line_number":133,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027204\u0027)"},{"line_number":134,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":135,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":136,"context_line":"        # Verify remove role not in list any more"},{"line_number":137,"context_line":"        roleids \u003d [r[\u0027id\u0027] for r in roles]"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9dI8%3D","line":134,"updated":"2014-04-04 12:09:14.000000000","message":"Please, add status check here.","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"82a087fca7b561a52e7ce0a8c3c25ed6a6df458e","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        self.assertEqual(resp[\u0027status\u0027], \u0027204\u0027)"},{"line_number":134,"context_line":"        resp, roles \u003d self.client.list_user_roles(tenant[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":135,"context_line":"        self.assert_role_in_role_list(role2, roles)"},{"line_number":136,"context_line":"        # Verify remove role not in list any more"},{"line_number":137,"context_line":"        roleids \u003d [r[\u0027id\u0027] for r in roles]"},{"line_number":138,"context_line":"        self.assertNotIn(role[\u0027id\u0027], roleids)"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAWH%2F9dGw%3D","line":136,"updated":"2014-04-04 12:09:14.000000000","message":"Personally, I would have first checked that the first role was successfully removed and only then checked that the second role is still present in the list. But as far as the order doesn\u0027t really matter here, I\u0027m OK with it.\n\n+nit: Verify that the removed role is not in the list any more.","commit_id":"7b245d01a973d43690d3091b09432d5ae5fe1066"}]}
