)]}'
{"keystone/tests/test_auth.py":[{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"0def50133562e3233733492b5e7240a4ac148e33","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import datetime"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import mock"},{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from keystone import assignment"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B5Gg%3D","line":18,"updated":"2014-01-21 01:33:50.000000000","message":"only mock is 3rd party","commit_id":"d4059127029c8d07cce56c7de403b1045b6a6d8c"},{"author":{"_account_id":8996,"name":"Florent Flament","email":"contact@florentflament.com","username":"florent"},"change_message_id":"9c09989f2d3f224a143b5b5d4d63eb2eeb3cedfc","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":"import uuid"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from keystone import assignment"},{"line_number":22,"context_line":"from keystone import auth"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BZhM%3D","line":19,"updated":"2014-01-27 10:58:00.000000000","message":"I thnik this import should be put between datetime and uuid","commit_id":"9f9f44fbfa2002e6dbeb85e8b035103f60481472"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"d408a574807361f6148685aa9e4ef044da383344","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import datetime"},{"line_number":17,"context_line":"import uuid"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from keystone import assignment"},{"line_number":22,"context_line":"from keystone import auth"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BZeg%3D","line":19,"in_reply_to":"AAAAUH%2F%2BZhM%3D","updated":"2014-01-27 11:21:06.000000000","message":"mock is not standard library\n\nImports should be grouped in the following order:\n       1. standard library imports\n       2. related third party imports\n       3. local application/library specific imports\n\nhttp://www.python.org/dev/peps/pep-0008/","commit_id":"9f9f44fbfa2002e6dbeb85e8b035103f60481472"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f6db00be855b34235fd96a931b089c3d674434d3","unresolved":false,"context_lines":[{"line_number":855,"context_line":""},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"class TokenExpirationTest(AuthTest):"},{"line_number":858,"context_line":"    @mock.patch(\"keystone.openstack.common.timeutils.utcnow\")"},{"line_number":859,"context_line":"    def _maintain_token_expiration(self, mock_utcnow):"},{"line_number":860,"context_line":"        \"\"\"Token expiration should be maintained after re-auth \u0026 validation.\"\"\""},{"line_number":861,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F96PA%3D","line":858,"updated":"2014-02-01 16:02:08.000000000","message":"use \u0027 for strings.","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"a3de935ffa3b7a92328c41254388079a27b3f6b3","unresolved":false,"context_lines":[{"line_number":855,"context_line":""},{"line_number":856,"context_line":""},{"line_number":857,"context_line":"class TokenExpirationTest(AuthTest):"},{"line_number":858,"context_line":"    @mock.patch(\"keystone.openstack.common.timeutils.utcnow\")"},{"line_number":859,"context_line":"    def _maintain_token_expiration(self, mock_utcnow):"},{"line_number":860,"context_line":"        \"\"\"Token expiration should be maintained after re-auth \u0026 validation.\"\"\""},{"line_number":861,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fc%2FE%3D","line":858,"in_reply_to":"AAAAUH%2F96PA%3D","updated":"2014-02-13 04:13:41.000000000","message":"Done","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"65621e0ced2fe2ff69dd95a91813800d75ee4a77","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        unscoped_token_id \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":872,"context_line":"        original_expiration \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"        timeutils.advance_time_seconds(1)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        r \u003d self.controller.validate_token("},{"line_number":877,"context_line":"            dict(is_admin\u003dTrue, query_string\u003d{}),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fgq0%3D","line":874,"updated":"2014-02-12 17:19:06.000000000","message":"does this still behave as expected? (in other words, is the mock return value updated to +1 second?\n\nif not, this patchset is bypassing a test for a security vulnerability","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"a3de935ffa3b7a92328c41254388079a27b3f6b3","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        unscoped_token_id \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":872,"context_line":"        original_expiration \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"        timeutils.advance_time_seconds(1)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        r \u003d self.controller.validate_token("},{"line_number":877,"context_line":"            dict(is_admin\u003dTrue, query_string\u003d{}),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fc%2FI%3D","line":874,"in_reply_to":"AAAAUX%2F%2Fge8%3D","updated":"2014-02-13 04:13:41.000000000","message":"Done","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"7262d02ede162e120079449afacf68aed755fa17","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        unscoped_token_id \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":872,"context_line":"        original_expiration \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"        timeutils.advance_time_seconds(1)"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        r \u003d self.controller.validate_token("},{"line_number":877,"context_line":"            dict(is_admin\u003dTrue, query_string\u003d{}),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fge8%3D","line":874,"in_reply_to":"AAAAUX%2F%2Fgq0%3D","updated":"2014-02-12 17:46:10.000000000","message":"i just finished testing this change, and it seems that advance_time_seconds() no longer has any effect on the mocked utc return value.\n\nthis means that this test is no longer capable of testing for the security vulnerability.","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"}],"keystone/tests/test_keystoneclient.py":[{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"0def50133562e3233733492b5e7240a4ac148e33","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import datetime"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"import os"},{"line_number":21,"context_line":"import uuid"},{"line_number":22,"context_line":"import webob"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B5G0%3D","line":20,"updated":"2014-01-21 01:33:50.000000000","message":"os is stdlib","commit_id":"d4059127029c8d07cce56c7de403b1045b6a6d8c"},{"author":{"_account_id":8996,"name":"Florent Flament","email":"contact@florentflament.com","username":"florent"},"change_message_id":"9c09989f2d3f224a143b5b5d4d63eb2eeb3cedfc","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":"import webob"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import mock"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystone.common import sql"},{"line_number":25,"context_line":"from keystone import config"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BZhk%3D","line":22,"updated":"2014-01-27 10:58:00.000000000","message":"Wouldn\u0027t it be better to move this import between datetime and os","commit_id":"9f9f44fbfa2002e6dbeb85e8b035103f60481472"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"d408a574807361f6148685aa9e4ef044da383344","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":"import webob"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import mock"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystone.common import sql"},{"line_number":25,"context_line":"from keystone import config"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BZc4%3D","line":22,"in_reply_to":"AAAAUH%2F%2BZhk%3D","updated":"2014-01-27 11:21:06.000000000","message":"mock is not standard library\n\nImports should be grouped in the following order:\n       1. standard library imports\n       2. related third party imports\n       3. local application/library specific imports\n\nhttp://www.python.org/dev/peps/pep-0008/","commit_id":"9f9f44fbfa2002e6dbeb85e8b035103f60481472"},{"author":{"_account_id":8996,"name":"Florent Flament","email":"contact@florentflament.com","username":"florent"},"change_message_id":"9c09989f2d3f224a143b5b5d4d63eb2eeb3cedfc","unresolved":false,"context_lines":[{"line_number":538,"context_line":"    @mock.patch(\"keystone.openstack.common.timeutils.utcnow\")"},{"line_number":539,"context_line":"    def test_token_expiry_maintained(self, mock_utcnow):"},{"line_number":540,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"},{"line_number":541,"context_line":"        timeutils.set_time_override()"},{"line_number":542,"context_line":"        foo_client \u003d self.get_client(self.user_foo)"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        orig_token \u003d foo_client.service_catalog.catalog[\u0027token\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BZiQ%3D","line":541,"updated":"2014-01-27 10:58:00.000000000","message":"Well, I guess you have forgotten to remove this line.","commit_id":"9f9f44fbfa2002e6dbeb85e8b035103f60481472"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"d408a574807361f6148685aa9e4ef044da383344","unresolved":false,"context_lines":[{"line_number":538,"context_line":"    @mock.patch(\"keystone.openstack.common.timeutils.utcnow\")"},{"line_number":539,"context_line":"    def test_token_expiry_maintained(self, mock_utcnow):"},{"line_number":540,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"},{"line_number":541,"context_line":"        timeutils.set_time_override()"},{"line_number":542,"context_line":"        foo_client \u003d self.get_client(self.user_foo)"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        orig_token \u003d foo_client.service_catalog.catalog[\u0027token\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BZcI%3D","line":541,"in_reply_to":"AAAAUH%2F%2BZiQ%3D","updated":"2014-01-27 11:21:06.000000000","message":"Yep thanks!!! :)","commit_id":"9f9f44fbfa2002e6dbeb85e8b035103f60481472"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f6db00be855b34235fd96a931b089c3d674434d3","unresolved":false,"context_lines":[{"line_number":535,"context_line":"                          client.tokens.authenticate,"},{"line_number":536,"context_line":"                          token\u003dtoken_id)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    @mock.patch(\"keystone.openstack.common.timeutils.utcnow\")"},{"line_number":539,"context_line":"    def test_token_expiry_maintained(self, mock_utcnow):"},{"line_number":540,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"},{"line_number":541,"context_line":"        foo_client \u003d self.get_client(self.user_foo)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUH%2F96O8%3D","line":538,"updated":"2014-02-01 16:02:08.000000000","message":"use \u0027 for strings.","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"a3de935ffa3b7a92328c41254388079a27b3f6b3","unresolved":false,"context_lines":[{"line_number":535,"context_line":"                          client.tokens.authenticate,"},{"line_number":536,"context_line":"                          token\u003dtoken_id)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    @mock.patch(\"keystone.openstack.common.timeutils.utcnow\")"},{"line_number":539,"context_line":"    def test_token_expiry_maintained(self, mock_utcnow):"},{"line_number":540,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"},{"line_number":541,"context_line":"        foo_client \u003d self.get_client(self.user_foo)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fc%2FA%3D","line":538,"in_reply_to":"AAAAUH%2F96O8%3D","updated":"2014-02-13 04:13:41.000000000","message":"Done","commit_id":"2c359bbcb4a531b112a043b72b77485677454fba"}]}
