)]}'
{"keystone/tests/unit/test_v3_assignment.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"650c0857a82537b1752a77b4caed41014fa469e0","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"        # FIXME(gyee): this test is no longer valid as user"},{"line_number":1152,"context_line":"        # have no role in the project. Can\u0027t get a scoped token"},{"line_number":1153,"context_line":"        # self.delete(member_url)"},{"line_number":1154,"context_line":"        # r \u003d self.get(collection_url)"},{"line_number":1155,"context_line":"        # self.assertValidRoleListResponse(r, expected_length\u003d0)"},{"line_number":1156,"context_line":"        # self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1157,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_09898526","side":"PARENT","line":1154,"updated":"2015-12-04 15:23:02.000000000","message":"This could have also just verified that self.user couldn\u0027t get a list of roles on the project since the role assignment was deleted.","commit_id":"45c19fcd8c4cc382a7471432cd9f72b809e1d5b1"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"603584a5b14b05df3d8a1317ef3b533834f3ef11","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"        # FIXME(gyee): this test is no longer valid as user"},{"line_number":1152,"context_line":"        # have no role in the project. Can\u0027t get a scoped token"},{"line_number":1153,"context_line":"        # self.delete(member_url)"},{"line_number":1154,"context_line":"        # r \u003d self.get(collection_url)"},{"line_number":1155,"context_line":"        # self.assertValidRoleListResponse(r, expected_length\u003d0)"},{"line_number":1156,"context_line":"        # self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1157,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_8c8a63be","side":"PARENT","line":1154,"in_reply_to":"7a740942_09898526","updated":"2015-12-04 15:52:53.000000000","message":"But I guess that\u0027d be another case, I am just making sure to keep the previous behavior","commit_id":"45c19fcd8c4cc382a7471432cd9f72b809e1d5b1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"650c0857a82537b1752a77b4caed41014fa469e0","unresolved":false,"context_lines":[{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"        self.delete(member_url)"},{"line_number":1160,"context_line":"        r \u003d self.get(collection_url)"},{"line_number":1161,"context_line":"        self.assertValidRoleListResponse(r, expected_length\u003d1)"},{"line_number":1162,"context_line":"        self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    def test_crud_user_project_role_grants_no_user(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_c9829d00","line":1161,"updated":"2015-12-04 15:23:02.000000000","message":"This should make sure the right role was deleted.","commit_id":"a8ba6bba27d189b8040335dc47db841c3436dbae"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"603584a5b14b05df3d8a1317ef3b533834f3ef11","unresolved":false,"context_lines":[{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"        self.delete(member_url)"},{"line_number":1160,"context_line":"        r \u003d self.get(collection_url)"},{"line_number":1161,"context_line":"        self.assertValidRoleListResponse(r, expected_length\u003d1)"},{"line_number":1162,"context_line":"        self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1163,"context_line":""},{"line_number":1164,"context_line":"    def test_crud_user_project_role_grants_no_user(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_acfe3f36","line":1161,"in_reply_to":"7a740942_c9829d00","updated":"2015-12-04 15:52:53.000000000","message":"Done","commit_id":"a8ba6bba27d189b8040335dc47db841c3436dbae"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"d5607604c712012cdcd7e758660b5123a8d74baa","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"        self.delete(member_url)"},{"line_number":1161,"context_line":"        r \u003d self.get(collection_url)"},{"line_number":1162,"context_line":"        self.assertValidRoleListResponse(r, ref\u003dself.role, expected_length\u003d1)"},{"line_number":1163,"context_line":"        self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"    def test_crud_user_project_role_grants_no_user(self):"},{"line_number":1166,"context_line":"        \"\"\"Grant role on a project to a user that doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_532fa83e","line":1163,"updated":"2015-12-08 17:01:31.000000000","message":"Should we also check for the specific role that we expect?\n\nI would expect the collection_url to always be the value of self because that\u0027s what the GET was getting.","commit_id":"9e4ce59f765103c0bf73b8aed437724ff597c7d6"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"6445eb460506801e5f4abd786383aad4e7ef69da","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"        self.delete(member_url)"},{"line_number":1161,"context_line":"        r \u003d self.get(collection_url)"},{"line_number":1162,"context_line":"        self.assertValidRoleListResponse(r, ref\u003dself.role, expected_length\u003d1)"},{"line_number":1163,"context_line":"        self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"    def test_crud_user_project_role_grants_no_user(self):"},{"line_number":1166,"context_line":"        \"\"\"Grant role on a project to a user that doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_731e6471","line":1163,"in_reply_to":"7a740942_532fa83e","updated":"2015-12-08 17:09:48.000000000","message":"Yes and yes.\n\n1) we already check the specific role in the line above, when we pass \u0027ref\u003dself.role\u0027, that ref is ensured to be in the list.\n\n2) The collection URL is the asme of the member URL without the role ID. Do you suggest to remove this check ? As perhaps it is something obvious ?","commit_id":"9e4ce59f765103c0bf73b8aed437724ff597c7d6"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"f9f7e413c7bff2ba8a004469726c8185dee39dbf","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"        self.delete(member_url)"},{"line_number":1161,"context_line":"        r \u003d self.get(collection_url)"},{"line_number":1162,"context_line":"        self.assertValidRoleListResponse(r, ref\u003dself.role, expected_length\u003d1)"},{"line_number":1163,"context_line":"        self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"},{"line_number":1164,"context_line":""},{"line_number":1165,"context_line":"    def test_crud_user_project_role_grants_no_user(self):"},{"line_number":1166,"context_line":"        \"\"\"Grant role on a project to a user that doesn\u0027t exist."}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_5b75602f","line":1163,"in_reply_to":"7a740942_731e6471","updated":"2016-01-06 22:48:35.000000000","message":"Yes, assertValidRoleListReponse will check for both as Samuel indicated.","commit_id":"9e4ce59f765103c0bf73b8aed437724ff597c7d6"}]}
