)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     liuchenhong \u003cliuchenhong@unitedstack.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-05 12:01:42 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add testcases of list_role_assignments of v3 domains"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are not unit testcases to cover list_role_assignments in"},{"line_number":10,"context_line":"assignment_api. This is why we encoutered bug 1437407: domain admin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3afb71cf_6f36c8e8","line":7,"updated":"2015-06-08 14:32:13.000000000","message":"/of/for?","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"e08af421b030cd2c1b1ca8b7864674de12674d74","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     liuchenhong \u003cliuchenhong@unitedstack.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-05 12:01:42 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add testcases of list_role_assignments of v3 domains"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are not unit testcases to cover list_role_assignments in"},{"line_number":10,"context_line":"assignment_api. This is why we encoutered bug 1437407: domain admin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3afb71cf_e6286588","line":7,"in_reply_to":"3afb71cf_6f36c8e8","updated":"2015-06-09 16:09:07.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add testcases of list_role_assignments of v3 domains"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are not unit testcases to cover list_role_assignments in"},{"line_number":10,"context_line":"assignment_api. This is why we encoutered bug 1437407: domain admin"},{"line_number":11,"context_line":"unable to list role assignments for projects in his domain."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3afb71cf_54303f01","line":9,"updated":"2015-06-08 14:32:13.000000000","message":"s/not/no","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"e08af421b030cd2c1b1ca8b7864674de12674d74","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add testcases of list_role_assignments of v3 domains"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are not unit testcases to cover list_role_assignments in"},{"line_number":10,"context_line":"assignment_api. This is why we encoutered bug 1437407: domain admin"},{"line_number":11,"context_line":"unable to list role assignments for projects in his domain."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3afb71cf_c62d6996","line":9,"in_reply_to":"3afb71cf_54303f01","updated":"2015-06-09 16:09:07.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add testcases of list_role_assignments of v3 domains"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are not unit testcases to cover list_role_assignments in"},{"line_number":10,"context_line":"assignment_api. This is why we encoutered bug 1437407: domain admin"},{"line_number":11,"context_line":"unable to list role assignments for projects in his domain."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id7d3fe77e63aaff30e09b8b850ade9eef598ce75"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3afb71cf_afa840dc","line":10,"updated":"2015-06-08 14:32:13.000000000","message":"I am fine with the statement, but I personally think testcase is not the root cause of a bug.","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"e08af421b030cd2c1b1ca8b7864674de12674d74","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add testcases of list_role_assignments of v3 domains"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There are not unit testcases to cover list_role_assignments in"},{"line_number":10,"context_line":"assignment_api. This is why we encoutered bug 1437407: domain admin"},{"line_number":11,"context_line":"unable to list role assignments for projects in his domain."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id7d3fe77e63aaff30e09b8b850ade9eef598ce75"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3afb71cf_a61eed5c","line":10,"in_reply_to":"3afb71cf_afa840dc","updated":"2015-06-09 16:09:07.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"}],"keystone/tests/unit/test_v3_assignment.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# TODO(chenhong): It\u0027s better to put this helper function in"},{"line_number":116,"context_line":"# a new class, just like AuthTestMixin."},{"line_number":117,"context_line":"build_role_assignment_entity \u003d _build_role_assignment_entity"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_3e45a4b2","line":116,"updated":"2015-06-08 14:32:13.000000000","message":"I am lost here, you meant to put function: _build_role_assignment_entity in class: AuthTestMixin? why we do that?","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"e08af421b030cd2c1b1ca8b7864674de12674d74","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# TODO(chenhong): It\u0027s better to put this helper function in"},{"line_number":116,"context_line":"# a new class, just like AuthTestMixin."},{"line_number":117,"context_line":"build_role_assignment_entity \u003d _build_role_assignment_entity"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_26f0bdc8","line":116,"in_reply_to":"3afb71cf_3e45a4b2","updated":"2015-06-09 16:09:07.000000000","message":"Well, I think this function now become a public function not just used in test_v3_assignment.py\n\nBut it\u0027s fine to remove the comment now.","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"505170641642d06a83a7d5475e50a22768d539cc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    return entity"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"build_role_assignment_entity \u003d _build_role_assignment_entity"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class AssignmentTestCase(test_v3.RestfulTestCase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af86dd1_d6beaefe","line":115,"updated":"2015-06-12 17:29:24.000000000","message":"both tests inherit from the same class, what do you think about moving this method to the super class (not necessarily is RestfulTestCase)?","commit_id":"d67f07f38b8c6541e15ee17a30d9d8ed9c30598e"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"2fbc07d773974be39dbcf29977a9653b4e0f9c8b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    return entity"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"build_role_assignment_entity \u003d _build_role_assignment_entity"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class AssignmentTestCase(test_v3.RestfulTestCase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_4468ecf5","line":115,"in_reply_to":"1af86dd1_d6beaefe","updated":"2015-06-14 10:47:34.000000000","message":"Currently, there is not suitable place to place this method, and this can wait until we have more than one method need to be placed together in a same super class.","commit_id":"d67f07f38b8c6541e15ee17a30d9d8ed9c30598e"}],"keystone/tests/unit/test_v3_protection.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"716b3d774078a970301ec8e637a65afa173c1709","unresolved":false,"context_lines":[{"line_number":776,"context_line":"        self.delete(member_url, auth\u003dself.auth,"},{"line_number":777,"context_line":"                    expected_status\u003dstatus_no_data)"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"    def _test_list_assignments(self, scope, scope_id, expected\u003dNone):"},{"line_number":780,"context_line":"        status_OK, status_created, status_no_data \u003d self._stati(expected)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        collection_url \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_2f02d2b4","line":779,"updated":"2015-06-04 17:08:44.000000000","message":"no need for this method because your collection_url will be different for each test. We aslo need the response to do further assertion checks.","commit_id":"fd8e56ce33e35f7b4d0476f15c9873bf04f281d3"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"716b3d774078a970301ec8e637a65afa173c1709","unresolved":false,"context_lines":[{"line_number":915,"context_line":"            password\u003dself.cloud_admin_user[\u0027password\u0027],"},{"line_number":916,"context_line":"            domain_id\u003dself.admin_domain[\u0027id\u0027])"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"        self._test_list_assignments(\u0027domain\u0027, self.domainA[\u0027id\u0027])"},{"line_number":919,"context_line":""},{"line_number":920,"context_line":"    def test_domain_admin_list_assignments_of_domain(self):"},{"line_number":921,"context_line":"        self.auth \u003d self.build_authentication_request("}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_cfc1fe55","line":918,"updated":"2015-06-04 17:08:44.000000000","message":"need to make sure the response is correct. i.e.\n\nself.assertValidRoleAssignmentListResponse\nself.assertRoleAssignmentInListResponse\n\nsee https://review.openstack.org/#/c/180846/5/keystone/tests/unit/test_v3_assignment.py\n\nneed to do that for all the tests","commit_id":"fd8e56ce33e35f7b4d0476f15c9873bf04f281d3"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"943856bb72ffd791db835f88115d49678540a2c1","unresolved":false,"context_lines":[{"line_number":915,"context_line":"            password\u003dself.cloud_admin_user[\u0027password\u0027],"},{"line_number":916,"context_line":"            domain_id\u003dself.admin_domain[\u0027id\u0027])"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"        self._test_list_assignments(\u0027domain\u0027, self.domainA[\u0027id\u0027])"},{"line_number":919,"context_line":""},{"line_number":920,"context_line":"    def test_domain_admin_list_assignments_of_domain(self):"},{"line_number":921,"context_line":"        self.auth \u003d self.build_authentication_request("}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_d06da9cd","line":918,"in_reply_to":"5afe65bd_cfc1fe55","updated":"2015-06-05 04:08:36.000000000","message":"Done","commit_id":"fd8e56ce33e35f7b4d0476f15c9873bf04f281d3"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":949,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":950,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"},{"line_number":951,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_admin_entity)"},{"line_number":954,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_7491fb51","line":952,"updated":"2015-06-08 14:32:13.000000000","message":"Basically, the reference data here is the same with the previous one in test_cloud_admin_list_assignments_of_domain.\n\nSuggest to provide one new testcase to test that domain_admin_user (only the admin in the domain A) cannot list assignments in domain B, so it would be more clear in my opinion.","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"4baaaa2d2acdfc1d248b0183044aec7edf66ac76","unresolved":false,"context_lines":[{"line_number":949,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":950,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"},{"line_number":951,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_admin_entity)"},{"line_number":954,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_b3a85421","line":952,"in_reply_to":"3afb71cf_668c75da","updated":"2015-06-10 03:02:05.000000000","message":"What I meant is *reference* data is indetical with the previous one, so I\u0027d like to see some differentiation,  this is why another testcase (admin role in domain A cannot list role assignments in domain B is needed). The testcase here is meaningful indeed but is not clear enough to prove the concept.\n\nRefactoring is a nice to have thing but not must, actually, we can just let domain_admin_user to try to list assignment in the domain B and check what\u0027s happened is enough.\n\nLet me know if I miss something.","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"e08af421b030cd2c1b1ca8b7864674de12674d74","unresolved":false,"context_lines":[{"line_number":949,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":950,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"},{"line_number":951,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_admin_entity)"},{"line_number":954,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_668c75da","line":952,"in_reply_to":"3afb71cf_7491fb51","updated":"2015-06-09 16:09:07.000000000","message":"The reference data is different with preview one. Domain_admin can only operate on its own domain, but cloud_admin can operate on all domains. I think it\u0027s reasonable to keep this test case.\n\nI do agree with you to provide a new test case to test domain_admin_user cannot list assignments in domain B. But the naming in this class is ugly and need to be refactoring firstly.. self.domain_admin_user and self.just_a_user need to be renamed to self.domainA_admin and self.domainA_user. I\u0027m plan to refactoring firstly, and then add those test cases.","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":980,"context_line":"            user_id\u003dself.project_admin_user[\u0027id\u0027],"},{"line_number":981,"context_line":"            role_id\u003dself.admin_role[\u0027id\u0027],"},{"line_number":982,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":983,"context_line":"        domainA_user_entity \u003d build_role_assignment_entity("},{"line_number":984,"context_line":"            project_id\u003dself.project[\u0027id\u0027],"},{"line_number":985,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":986,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_341ca3c0","line":983,"updated":"2015-06-08 14:32:13.000000000","message":"s/domainA_user_entity/project_user_entity","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"1a66c49fc0f05befa2709d5f3932adc1d2563050","unresolved":false,"context_lines":[{"line_number":980,"context_line":"            user_id\u003dself.project_admin_user[\u0027id\u0027],"},{"line_number":981,"context_line":"            role_id\u003dself.admin_role[\u0027id\u0027],"},{"line_number":982,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":983,"context_line":"        domainA_user_entity \u003d build_role_assignment_entity("},{"line_number":984,"context_line":"            project_id\u003dself.project[\u0027id\u0027],"},{"line_number":985,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":986,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_a1c817a9","line":983,"in_reply_to":"3afb71cf_341ca3c0","updated":"2015-06-09 16:18:11.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":987,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"        self.assertRoleAssignmentInListResponse(r, project_admin_entity)"},{"line_number":990,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    @tests.utils.wip(\u0027waiting on bug #1437407\u0027)"},{"line_number":993,"context_line":"    def test_domain_admin_list_assignments_of_project(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_f47ccbec","line":990,"updated":"2015-06-08 14:32:13.000000000","message":"s/domainA_user_entity/project_user_entity","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"1a66c49fc0f05befa2709d5f3932adc1d2563050","unresolved":false,"context_lines":[{"line_number":987,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"        self.assertRoleAssignmentInListResponse(r, project_admin_entity)"},{"line_number":990,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"    @tests.utils.wip(\u0027waiting on bug #1437407\u0027)"},{"line_number":993,"context_line":"    def test_domain_admin_list_assignments_of_project(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_81cd1bb9","line":990,"in_reply_to":"3afb71cf_f47ccbec","updated":"2015-06-09 16:18:11.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":1007,"context_line":"            user_id\u003dself.project_admin_user[\u0027id\u0027],"},{"line_number":1008,"context_line":"            role_id\u003dself.admin_role[\u0027id\u0027],"},{"line_number":1009,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":1010,"context_line":"        domainA_user_entity \u003d build_role_assignment_entity("},{"line_number":1011,"context_line":"            project_id\u003dself.project[\u0027id\u0027],"},{"line_number":1012,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":1013,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_f485eb58","line":1010,"updated":"2015-06-08 14:32:13.000000000","message":"s/domainA_user_entity/project_user_entity","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"1a66c49fc0f05befa2709d5f3932adc1d2563050","unresolved":false,"context_lines":[{"line_number":1007,"context_line":"            user_id\u003dself.project_admin_user[\u0027id\u0027],"},{"line_number":1008,"context_line":"            role_id\u003dself.admin_role[\u0027id\u0027],"},{"line_number":1009,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":1010,"context_line":"        domainA_user_entity \u003d build_role_assignment_entity("},{"line_number":1011,"context_line":"            project_id\u003dself.project[\u0027id\u0027],"},{"line_number":1012,"context_line":"            user_id\u003dself.just_a_user[\u0027id\u0027],"},{"line_number":1013,"context_line":"            role_id\u003dself.role[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_61c7bf96","line":1010,"in_reply_to":"3afb71cf_f485eb58","updated":"2015-06-09 16:18:11.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"90f7e96662577356daa8b2e13f11d34f2170333b","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        self.assertRoleAssignmentInListResponse(r, project_admin_entity)"},{"line_number":1017,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    def test_domain_user_list_assignments_of_project_failed(self):"},{"line_number":1020,"context_line":"        self.auth \u003d self.build_authentication_request("}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_74921ba1","line":1017,"updated":"2015-06-08 14:32:13.000000000","message":"s/domainA_user_entity/project_user_entity","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"1a66c49fc0f05befa2709d5f3932adc1d2563050","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"            inherited_to_projects\u003dFalse)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        self.assertRoleAssignmentInListResponse(r, project_admin_entity)"},{"line_number":1017,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    def test_domain_user_list_assignments_of_project_failed(self):"},{"line_number":1020,"context_line":"        self.auth \u003d self.build_authentication_request("}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_21bd4702","line":1017,"in_reply_to":"3afb71cf_74921ba1","updated":"2015-06-09 16:18:11.000000000","message":"Done","commit_id":"d1380b2e7707cb3d59c2ece1eab445f762c3dd53"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"505170641642d06a83a7d5475e50a22768d539cc","unresolved":false,"context_lines":[{"line_number":941,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_admin_entity)"},{"line_number":942,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"    def test_domain_admin_list_assignments_of_domainB_failed(self):"},{"line_number":945,"context_line":"        self.auth \u003d self.build_authentication_request("},{"line_number":946,"context_line":"            user_id\u003dself.domain_admin_user[\u0027id\u0027],"},{"line_number":947,"context_line":"            password\u003dself.domain_admin_user[\u0027password\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af86dd1_f6f52a83","line":944,"updated":"2015-06-12 17:29:24.000000000","message":"what is domainB? Suggest to rename the test to specify that it is testing that a domain_admin can\u0027t list role assignments of a different domain\n\nalso, suggest to change \"failed\" to \"fails\" here and in the other occurrences below","commit_id":"d67f07f38b8c6541e15ee17a30d9d8ed9c30598e"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"2fbc07d773974be39dbcf29977a9653b4e0f9c8b","unresolved":false,"context_lines":[{"line_number":941,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_admin_entity)"},{"line_number":942,"context_line":"        self.assertRoleAssignmentInListResponse(r, domainA_user_entity)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"    def test_domain_admin_list_assignments_of_domainB_failed(self):"},{"line_number":945,"context_line":"        self.auth \u003d self.build_authentication_request("},{"line_number":946,"context_line":"            user_id\u003dself.domain_admin_user[\u0027id\u0027],"},{"line_number":947,"context_line":"            password\u003dself.domain_admin_user[\u0027password\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa32b979_a45e9843","line":944,"in_reply_to":"1af86dd1_f6f52a83","updated":"2015-06-14 10:47:34.000000000","message":"domainB -\u003e another_domain, OK\n\nI use \u0027failed\u0027 as it\u0027s used in test_v3_auth.py","commit_id":"d67f07f38b8c6541e15ee17a30d9d8ed9c30598e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"29b5dbcec116b0b9939f222195431b83c3187f17","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from keystone.tests import unit as tests"},{"line_number":24,"context_line":"from keystone.tests.unit.ksfixtures import temporaryfile"},{"line_number":25,"context_line":"from keystone.tests.unit import test_v3"},{"line_number":26,"context_line":"from keystone.tests.unit.test_v3_assignment import \\"},{"line_number":27,"context_line":"    build_role_assignment_entity"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_6135b4d8","line":26,"updated":"2015-06-30 10:28:44.000000000","message":"Do not import objects, only modules","commit_id":"a62ab1992222df44a1fb17e55d7877e16bda193d"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"b7a6e401fe6679e5088960f6795a6deb722c57c8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from keystone.tests import unit as tests"},{"line_number":24,"context_line":"from keystone.tests.unit.ksfixtures import temporaryfile"},{"line_number":25,"context_line":"from keystone.tests.unit import test_v3"},{"line_number":26,"context_line":"from keystone.tests.unit.test_v3_assignment import \\"},{"line_number":27,"context_line":"    build_role_assignment_entity"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_69bef2d5","line":26,"in_reply_to":"ba3cc151_6135b4d8","updated":"2015-06-30 14:24:03.000000000","message":"Done","commit_id":"a62ab1992222df44a1fb17e55d7877e16bda193d"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"29b5dbcec116b0b9939f222195431b83c3187f17","unresolved":false,"context_lines":[{"line_number":895,"context_line":"            password\u003dself.cloud_admin_user[\u0027password\u0027],"},{"line_number":896,"context_line":"            domain_id\u003dself.admin_domain[\u0027id\u0027])"},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"        collection_url \u003d \u0027/role_assignments?scope.domain.id\u003d%s\u0027 % ("},{"line_number":899,"context_line":"            self.domainA[\u0027id\u0027])"},{"line_number":900,"context_line":"        r \u003d self.get(collection_url, auth\u003dself.auth)"},{"line_number":901,"context_line":"        self.assertValidRoleAssignmentListResponse("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_0c809f45","line":898,"updated":"2015-06-30 10:28:44.000000000","message":"we already have _build_role_assignment_query_url in test_v3_assignment.py. I suggest using it.","commit_id":"a62ab1992222df44a1fb17e55d7877e16bda193d"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"b7a6e401fe6679e5088960f6795a6deb722c57c8","unresolved":false,"context_lines":[{"line_number":895,"context_line":"            password\u003dself.cloud_admin_user[\u0027password\u0027],"},{"line_number":896,"context_line":"            domain_id\u003dself.admin_domain[\u0027id\u0027])"},{"line_number":897,"context_line":""},{"line_number":898,"context_line":"        collection_url \u003d \u0027/role_assignments?scope.domain.id\u003d%s\u0027 % ("},{"line_number":899,"context_line":"            self.domainA[\u0027id\u0027])"},{"line_number":900,"context_line":"        r \u003d self.get(collection_url, auth\u003dself.auth)"},{"line_number":901,"context_line":"        self.assertValidRoleAssignmentListResponse("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_09b5e6ec","line":898,"in_reply_to":"ba3cc151_0c809f45","updated":"2015-06-30 14:24:03.000000000","message":"Done","commit_id":"a62ab1992222df44a1fb17e55d7877e16bda193d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"9c32de631a282ea001678b0f8cc86b2f4e902a50","unresolved":false,"context_lines":[{"line_number":988,"context_line":"        self.assertRoleAssignmentInListResponse(r, project_user_entity)"},{"line_number":989,"context_line":""},{"line_number":990,"context_line":"    @tests.utils.wip(\u0027waiting on bug #1437407\u0027)"},{"line_number":991,"context_line":"    def test_domain_admin_list_assignments_of_project(self):"},{"line_number":992,"context_line":"        self.auth \u003d self.build_authentication_request("},{"line_number":993,"context_line":"            user_id\u003dself.domain_admin_user[\u0027id\u0027],"},{"line_number":994,"context_line":"            password\u003dself.domain_admin_user[\u0027password\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_0ba8901e","line":991,"updated":"2015-06-30 06:22:06.000000000","message":"Please remove this test for now as this bug depends on new API spec.\n\nhttps://review.openstack.org/#/c/187045/\n\nWe can add this test later after the new API is implemented.","commit_id":"a62ab1992222df44a1fb17e55d7877e16bda193d"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"b7097f77e1242f83ab8ddbbb8270a089a0211ede","unresolved":false,"context_lines":[{"line_number":988,"context_line":"        self.assertRoleAssignmentInListResponse(r, project_user_entity)"},{"line_number":989,"context_line":""},{"line_number":990,"context_line":"    @tests.utils.wip(\u0027waiting on bug #1437407\u0027)"},{"line_number":991,"context_line":"    def test_domain_admin_list_assignments_of_project(self):"},{"line_number":992,"context_line":"        self.auth \u003d self.build_authentication_request("},{"line_number":993,"context_line":"            user_id\u003dself.domain_admin_user[\u0027id\u0027],"},{"line_number":994,"context_line":"            password\u003dself.domain_admin_user[\u0027password\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_c9bb90c3","line":991,"in_reply_to":"ba3cc151_0ba8901e","updated":"2015-06-30 07:54:46.000000000","message":"I already mark it: work in progress\nIt won\u0027t affect test result, just be skipped.","commit_id":"a62ab1992222df44a1fb17e55d7877e16bda193d"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fb1c023f09ace6f48be8e17056c6ba81c8bbb466","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from keystone.tests import unit as tests"},{"line_number":24,"context_line":"from keystone.tests.unit.ksfixtures import temporaryfile"},{"line_number":25,"context_line":"from keystone.tests.unit import test_v3"},{"line_number":26,"context_line":"from keystone.tests.unit import test_v3_assignment"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_1003c20e","line":26,"updated":"2015-06-30 15:17:09.000000000","message":"Is there any reason these tests are not in test_v3_assignment since they have to use some of the functionality from it?","commit_id":"d5fbfa4f4edb2dc66a381246ec0af474e54892bd"},{"author":{"_account_id":16165,"name":"Chenhong Liu","email":"liuchenhong@unitedstack.com","username":"liuchenhong"},"change_message_id":"3741b52b44311247712d728da903505ece3e2440","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from keystone.tests import unit as tests"},{"line_number":24,"context_line":"from keystone.tests.unit.ksfixtures import temporaryfile"},{"line_number":25,"context_line":"from keystone.tests.unit import test_v3"},{"line_number":26,"context_line":"from keystone.tests.unit import test_v3_assignment"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba3cc151_beb9877b","line":26,"in_reply_to":"ba3cc151_1003c20e","updated":"2015-06-30 15:59:10.000000000","message":"I think these test cases belong to this file and this class since they test code againest the policy.v3cloudsample.json. Other way, I think the functionality I used from test_v3_assignment should be made global accessable between test cases in different files, but we don\u0027t need to do this in this change.","commit_id":"d5fbfa4f4edb2dc66a381246ec0af474e54892bd"}]}
