)]}'
{"keystone/tests/unit/test_revoke.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"d29bf3941aff724e4c3fd7c98e8453132532a507","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    project_tokens \u003d []"},{"line_number":64,"context_line":"    i \u003d len(project_tokens)"},{"line_number":65,"context_line":"    project_tokens.append(_sample_blank_token())"},{"line_number":66,"context_line":"    project_tokens[i][\u0027user_id\u0027] \u003d user_ids[0]"},{"line_number":67,"context_line":"    project_tokens[i][\u0027project_id\u0027] \u003d project_ids[0]"},{"line_number":68,"context_line":"    project_tokens[i][\u0027roles\u0027] \u003d [role_ids[1]]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    i \u003d len(project_tokens)"},{"line_number":71,"context_line":"    project_tokens.append(_sample_blank_token())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_6480bd47","line":68,"range":{"start_line":66,"start_character":0,"end_line":68,"end_character":46},"updated":"2016-11-21 16:49:54.000000000","message":"i understand that this is copied from the class, but it is very hard to review this. Have you figured out what is going on here and why the second role in the list is used? If yes, please post a follow-up or add comments in this patch","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"74a9c610ee47ab295acb763904a7d4b534f74f56","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    project_tokens \u003d []"},{"line_number":64,"context_line":"    i \u003d len(project_tokens)"},{"line_number":65,"context_line":"    project_tokens.append(_sample_blank_token())"},{"line_number":66,"context_line":"    project_tokens[i][\u0027user_id\u0027] \u003d user_ids[0]"},{"line_number":67,"context_line":"    project_tokens[i][\u0027project_id\u0027] \u003d project_ids[0]"},{"line_number":68,"context_line":"    project_tokens[i][\u0027roles\u0027] \u003d [role_ids[1]]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    i \u003d len(project_tokens)"},{"line_number":71,"context_line":"    project_tokens.append(_sample_blank_token())"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_1df91b4e","line":68,"range":{"start_line":66,"start_character":0,"end_line":68,"end_character":46},"in_reply_to":"7a77a97e_6480bd47","updated":"2016-11-21 19:12:27.000000000","message":"Done","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"2da7423a529ac81f74f8d9020c8c99e43dca2689","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                           role_ids[2]]"},{"line_number":426,"context_line":"        token3[\u0027user_id\u0027] \u003d user_ids[0]"},{"line_number":427,"context_line":"        token3[\u0027project_id\u0027] \u003d project_ids[0]"},{"line_number":428,"context_line":"        tokens \u003d project_tokens"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        self._assertTokenNotRevoked(None, token1)"},{"line_number":431,"context_line":"        self._assertTokenNotRevoked(None, token2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_98c70764","line":428,"range":{"start_line":428,"start_character":8,"end_line":428,"end_character":31},"updated":"2016-11-21 14:28:24.000000000","message":"why is that? Would be much clearer if you used the original name in line 433.","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"d29bf3941aff724e4c3fd7c98e8453132532a507","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                           role_ids[2]]"},{"line_number":426,"context_line":"        token3[\u0027user_id\u0027] \u003d user_ids[0]"},{"line_number":427,"context_line":"        token3[\u0027project_id\u0027] \u003d project_ids[0]"},{"line_number":428,"context_line":"        tokens \u003d project_tokens"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        self._assertTokenNotRevoked(None, token1)"},{"line_number":431,"context_line":"        self._assertTokenNotRevoked(None, token2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_645b5d2f","line":428,"range":{"start_line":428,"start_character":8,"end_line":428,"end_character":31},"in_reply_to":"7a77a97e_98c70764","updated":"2016-11-21 16:49:54.000000000","message":"++","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"74a9c610ee47ab295acb763904a7d4b534f74f56","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                           role_ids[2]]"},{"line_number":426,"context_line":"        token3[\u0027user_id\u0027] \u003d user_ids[0]"},{"line_number":427,"context_line":"        token3[\u0027project_id\u0027] \u003d project_ids[0]"},{"line_number":428,"context_line":"        tokens \u003d project_tokens"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        self._assertTokenNotRevoked(None, token1)"},{"line_number":431,"context_line":"        self._assertTokenNotRevoked(None, token2)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_3d9417e7","line":428,"range":{"start_line":428,"start_character":8,"end_line":428,"end_character":31},"in_reply_to":"7a77a97e_98c70764","updated":"2016-11-21 19:12:27.000000000","message":"Done","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"2da7423a529ac81f74f8d9020c8c99e43dca2689","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        self._assertTokenNotRevoked(None, token3)"},{"line_number":433,"context_line":"        for token in tokens:"},{"line_number":434,"context_line":"            self._assertTokenNotRevoked(None, token)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.revoke_api.revoke_by_grant(role_id\u003drole_ids[0],"},{"line_number":437,"context_line":"                                        user_id\u003duser_ids[0],"},{"line_number":438,"context_line":"                                        project_id\u003dproject_ids[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_789f8b50","line":435,"updated":"2016-11-21 14:28:24.000000000","message":"a comment explaining that you are revoking the grant used in token1 and token3 would be nice, since it is hard for the \"reader\" to keep track of everything.","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"d29bf3941aff724e4c3fd7c98e8453132532a507","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        self._assertTokenNotRevoked(None, token3)"},{"line_number":433,"context_line":"        for token in tokens:"},{"line_number":434,"context_line":"            self._assertTokenNotRevoked(None, token)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.revoke_api.revoke_by_grant(role_id\u003drole_ids[0],"},{"line_number":437,"context_line":"                                        user_id\u003duser_ids[0],"},{"line_number":438,"context_line":"                                        project_id\u003dproject_ids[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_047389b5","line":435,"in_reply_to":"7a77a97e_789f8b50","updated":"2016-11-21 16:49:54.000000000","message":"++","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"74a9c610ee47ab295acb763904a7d4b534f74f56","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        self._assertTokenNotRevoked(None, token3)"},{"line_number":433,"context_line":"        for token in tokens:"},{"line_number":434,"context_line":"            self._assertTokenNotRevoked(None, token)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.revoke_api.revoke_by_grant(role_id\u003drole_ids[0],"},{"line_number":437,"context_line":"                                        user_id\u003duser_ids[0],"},{"line_number":438,"context_line":"                                        project_id\u003dproject_ids[0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_5d99d31e","line":435,"in_reply_to":"7a77a97e_789f8b50","updated":"2016-11-21 19:12:27.000000000","message":"Done","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"2da7423a529ac81f74f8d9020c8c99e43dca2689","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        self._assertTokenRevoked(None, token2)"},{"line_number":448,"context_line":"        self._assertTokenRevoked(None, token3)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"        self.revoke_api.revoke_by_grant(role_id\u003drole_ids[2],"},{"line_number":451,"context_line":"                                        user_id\u003duser_ids[0],"},{"line_number":452,"context_line":"                                        project_id\u003dproject_ids[0])"},{"line_number":453,"context_line":"        self._assertTokenRevoked(None, token1)"},{"line_number":454,"context_line":"        self._assertTokenRevoked(None, token2)"},{"line_number":455,"context_line":"        self._assertTokenRevoked(None, token3)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @mock.patch.object(timeutils, \u0027utcnow\u0027)"},{"line_number":458,"context_line":"    def test_expired_events_are_removed(self, mock_utcnow):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_78c6ab4a","line":455,"range":{"start_line":450,"start_character":0,"end_line":455,"end_character":46},"updated":"2016-11-21 14:28:24.000000000","message":"they are already revoked, there is no such thing as \"unrevoke\", right? Maybe you can structure the test differently so you can revoke one token per time.","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"},{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"74a9c610ee47ab295acb763904a7d4b534f74f56","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        self._assertTokenRevoked(None, token2)"},{"line_number":448,"context_line":"        self._assertTokenRevoked(None, token3)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"        self.revoke_api.revoke_by_grant(role_id\u003drole_ids[2],"},{"line_number":451,"context_line":"                                        user_id\u003duser_ids[0],"},{"line_number":452,"context_line":"                                        project_id\u003dproject_ids[0])"},{"line_number":453,"context_line":"        self._assertTokenRevoked(None, token1)"},{"line_number":454,"context_line":"        self._assertTokenRevoked(None, token2)"},{"line_number":455,"context_line":"        self._assertTokenRevoked(None, token3)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    @mock.patch.object(timeutils, \u0027utcnow\u0027)"},{"line_number":458,"context_line":"    def test_expired_events_are_removed(self, mock_utcnow):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_7d9e8f08","line":455,"range":{"start_line":450,"start_character":0,"end_line":455,"end_character":46},"in_reply_to":"7a77a97e_78c6ab4a","updated":"2016-11-21 19:12:27.000000000","message":"Done","commit_id":"683c14b17d95ba83b5df0b72f8dccab691904a46"}]}
