)]}'
{"keystone/tests/unit/test_backend_kvs.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"87bf060969b8dcb7efbe947104834535f19c2939","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        user_token_list \u003d token_persistence.driver._store.get(user_key)"},{"line_number":108,"context_line":"        self.assertEqual(expected_user_token_list, user_token_list)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_bisection(self):"},{"line_number":111,"context_line":"        token_list \u003d [(\u0027token-001\u0027, \u00272016-07-27T21:14:35.123450Z\u0027),"},{"line_number":112,"context_line":"                      (\u0027token-002\u0027, \u00272016-07-27T21:14:40.851622Z\u0027),"},{"line_number":113,"context_line":"                      (\u0027token-003\u0027, \u00272016-07-27T21:14:45.712231Z\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_cf185c87","line":110,"updated":"2016-08-16 12:29:06.000000000","message":"to proper test the function you should consider some extra cases, for example:\n \n  - an empty list\n  - a list with all the tokens within the same second\n  - the bisect discarding all the values\n  - the bisect discarding none of the values","commit_id":"33b0a66d062bb6bfc3bd3c9a38098e1550a7cb99"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"87bf060969b8dcb7efbe947104834535f19c2939","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.assertEqual(expected_user_token_list, user_token_list)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def test_bisection(self):"},{"line_number":111,"context_line":"        token_list \u003d [(\u0027token-001\u0027, \u00272016-07-27T21:14:35.123450Z\u0027),"},{"line_number":112,"context_line":"                      (\u0027token-002\u0027, \u00272016-07-27T21:14:40.851622Z\u0027),"},{"line_number":113,"context_line":"                      (\u0027token-003\u0027, \u00272016-07-27T21:14:45.712231Z\u0027),"},{"line_number":114,"context_line":"                      (\u0027token-004\u0027, \u00272016-07-27T21:14:50.346591Z\u0027)]"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_8f59445d","line":111,"updated":"2016-08-16 12:29:06.000000000","message":"what do you think about using some tooling to get the times instead of using manual values?","commit_id":"33b0a66d062bb6bfc3bd3c9a38098e1550a7cb99"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"87bf060969b8dcb7efbe947104834535f19c2939","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                      (\u0027token-004\u0027, \u00272016-07-27T21:14:50.346591Z\u0027)]"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        persistence \u003d self.token_provider_api._persistence"},{"line_number":117,"context_line":"        tstamp \u003d \u00272016-07-27T21:14:45.712231Z\u0027"},{"line_number":118,"context_line":"        idx \u003d persistence.driver._bisect(token_list, tstamp, before\u003dTrue)"},{"line_number":119,"context_line":"        self.assertEqual(idx, 2)"},{"line_number":120,"context_line":"        idx \u003d persistence.driver._bisect(token_list, tstamp, before\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_6f54c820","line":117,"updated":"2016-08-16 12:29:06.000000000","message":"same as above","commit_id":"33b0a66d062bb6bfc3bd3c9a38098e1550a7cb99"}],"keystone/token/persistence/backends/kvs.py":[{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"b2db32de7183d70bb0bd03bde7ebaa498d3c7ac0","unresolved":false,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"            # Since the list is maintained in sorted order, the list can be"},{"line_number":240,"context_line":"            # trimmed to include only those beyond the expired_index. Any"},{"line_number":241,"context_line":"            # tokens not included in the token list are expired and can be be"},{"line_number":242,"context_line":"            # removed from this list."},{"line_number":243,"context_line":"            token_list \u003d token_list[expired_index:]"},{"line_number":244,"context_line":"            revoked_tokens \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_aad6ddc2","line":241,"range":{"start_line":241,"start_character":74,"end_line":241,"end_character":77},"updated":"2016-07-28 11:20:40.000000000","message":"It should be deleted.","commit_id":"2ff8e11a065690f661c9b32614ab6cbbdd44ec07"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"19b5d6abf7d4694c768710e5e40f0eaa25f88af1","unresolved":false,"context_lines":[{"line_number":238,"context_line":""},{"line_number":239,"context_line":"            # Since the list is maintained in sorted order, the list can be"},{"line_number":240,"context_line":"            # trimmed to include only those beyond the expired_index. Any"},{"line_number":241,"context_line":"            # tokens not included in the token list are expired and can be be"},{"line_number":242,"context_line":"            # removed from this list."},{"line_number":243,"context_line":"            token_list \u003d token_list[expired_index:]"},{"line_number":244,"context_line":"            revoked_tokens \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_d615ac9b","line":241,"range":{"start_line":241,"start_character":74,"end_line":241,"end_character":77},"in_reply_to":"bacf61ea_aad6ddc2","updated":"2016-07-28 14:56:50.000000000","message":"Done","commit_id":"2ff8e11a065690f661c9b32614ab6cbbdd44ec07"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"59b8491a4a74af47b0d3b242e5c8e5fe101a9725","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        :param tstamp: the token expiry time to determine where the insertion"},{"line_number":179,"context_line":"                       should happen"},{"line_number":180,"context_line":"        :param before: when True finds the insertion point before the specified"},{"line_number":181,"context_line":"                     timestamp value. When False, finds the insertion point"},{"line_number":182,"context_line":"                     after the specified timestamp value."},{"line_number":183,"context_line":"        :return: index where to insert the token"},{"line_number":184,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_e848ef5d","line":181,"updated":"2016-08-15 12:21:12.000000000","message":"indentation a bit off here","commit_id":"b1c8f120c963d53d35be6d8e336d2443dd46aa2a"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"4271c50e2d084adb0b6193aa1a6b2132265289fe","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        :param tstamp: the token expiry time to determine where the insertion"},{"line_number":179,"context_line":"                       should happen"},{"line_number":180,"context_line":"        :param before: when True finds the insertion point before the specified"},{"line_number":181,"context_line":"                     timestamp value. When False, finds the insertion point"},{"line_number":182,"context_line":"                     after the specified timestamp value."},{"line_number":183,"context_line":"        :return: index where to insert the token"},{"line_number":184,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_4ba640c2","line":181,"in_reply_to":"3ac371cc_e848ef5d","updated":"2016-08-15 21:46:46.000000000","message":"Done","commit_id":"b1c8f120c963d53d35be6d8e336d2443dd46aa2a"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"59b8491a4a74af47b0d3b242e5c8e5fe101a9725","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            token_list \u003d self._get_user_token_list_with_expiry(user_key)"},{"line_number":237,"context_line":"            expired_index \u003d self._bisect(token_list, current_time, before\u003dTrue)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"            # Since the list is maintained in sorted order, the list should be"},{"line_number":240,"context_line":"            # trimmed to include only those beyond the expired_index. Any"},{"line_number":241,"context_line":"            # tokens not included in the token list are expired and should"},{"line_number":242,"context_line":"            # be removed."}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_88269b66","line":239,"range":{"start_line":239,"start_character":46,"end_line":239,"end_character":58},"updated":"2016-08-15 12:21:12.000000000","message":"can you be more precise? You should include details about the ordering considered, if it is the token expiration time, creation time or another criteria. The variables names are not clear enough.","commit_id":"b1c8f120c963d53d35be6d8e336d2443dd46aa2a"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"4271c50e2d084adb0b6193aa1a6b2132265289fe","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            token_list \u003d self._get_user_token_list_with_expiry(user_key)"},{"line_number":237,"context_line":"            expired_index \u003d self._bisect(token_list, current_time, before\u003dTrue)"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"            # Since the list is maintained in sorted order, the list should be"},{"line_number":240,"context_line":"            # trimmed to include only those beyond the expired_index. Any"},{"line_number":241,"context_line":"            # tokens not included in the token list are expired and should"},{"line_number":242,"context_line":"            # be removed."}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_66d09154","line":239,"range":{"start_line":239,"start_character":46,"end_line":239,"end_character":58},"in_reply_to":"3ac371cc_88269b66","updated":"2016-08-15 21:46:46.000000000","message":"Hopefully this is more clear in my updated patchset.","commit_id":"b1c8f120c963d53d35be6d8e336d2443dd46aa2a"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"59b8491a4a74af47b0d3b242e5c8e5fe101a9725","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        token_list \u003d token_list[expired_index:]"},{"line_number":412,"context_line":"        for item in token_list:"},{"line_number":413,"context_line":"            token_id \u003d item[0]"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"            try:"},{"line_number":416,"context_line":"                token_ref \u003d self.get_token(token_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_426da103","line":413,"range":{"start_line":413,"start_character":23,"end_line":413,"end_character":30},"updated":"2016-08-15 12:21:12.000000000","message":"what \"item[0]\" stands for? Would be nice to have a comment explaining it.","commit_id":"b1c8f120c963d53d35be6d8e336d2443dd46aa2a"},{"author":{"_account_id":8992,"name":"Billy Olsen","email":"billy.olsen@canonical.com","username":"billy-olsen"},"change_message_id":"4271c50e2d084adb0b6193aa1a6b2132265289fe","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"        token_list \u003d token_list[expired_index:]"},{"line_number":412,"context_line":"        for item in token_list:"},{"line_number":413,"context_line":"            token_id \u003d item[0]"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"            try:"},{"line_number":416,"context_line":"                token_ref \u003d self.get_token(token_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_a6ca899f","line":413,"range":{"start_line":413,"start_character":23,"end_line":413,"end_character":30},"in_reply_to":"3ac371cc_426da103","updated":"2016-08-15 21:46:46.000000000","message":"Done","commit_id":"b1c8f120c963d53d35be6d8e336d2443dd46aa2a"}]}
