)]}'
{"keystone/tests/test_v3.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9387a27627a42f7ffa422afb72335d31288eb959","unresolved":false,"context_lines":[{"line_number":352,"context_line":"            body\u003dauth)"},{"line_number":353,"context_line":"        return r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def v3_auth_token(self, auth_data):"},{"line_number":356,"context_line":"        return self.admin_request(method\u003d\u0027POST\u0027,"},{"line_number":357,"context_line":"                                  path\u003d\u0027/v3/auth/tokens\u0027,"},{"line_number":358,"context_line":"                                  body\u003dauth_data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_7eb01b40","line":355,"updated":"2014-06-27 20:56:36.000000000","message":"my only issue with this patchset is this method\u0027s signature.\n\nregarding it\u0027s name, there\u0027s no verb, which make it sound like it\u0027s actually reading an attribute (use the name to describe what the method does)\n\nregarding it\u0027s signature, it\u0027d be more useful if it passed **kwargs through to admin_request().\n\nwhy doesn\u0027t get_requested_token() use this method?\n\nwhy do callers need the raw response? (in other words, why can\u0027t they call get_requested_token() instead?)\n\nget_requested_token(self, auth) uses \"auth\" whereas this method uses \"auth_data\" -- I don\u0027t see a reason to deviate from that here. call it \"auth.\"","commit_id":"8388ce776f3c1d3af0a659a651d1105c435ef392"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"7270dd828698b2980f26597ef1a52dd195530517","unresolved":false,"context_lines":[{"line_number":352,"context_line":"            body\u003dauth)"},{"line_number":353,"context_line":"        return r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def v3_auth_token(self, auth_data):"},{"line_number":356,"context_line":"        return self.admin_request(method\u003d\u0027POST\u0027,"},{"line_number":357,"context_line":"                                  path\u003d\u0027/v3/auth/tokens\u0027,"},{"line_number":358,"context_line":"                                  body\u003dauth_data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_41545f53","line":355,"in_reply_to":"1ae5cdf2_7eb01b40","updated":"2014-06-28 02:04:44.000000000","message":"*why doesn\u0027t get_requested_token() use this method?\n\n-I will modify.\n\n*why do callers need the raw response?\n\n-Some tests need to check parameters(eg:\u0027expires_at\u0027,\u0027project\u0027) in the response.\n\n\nI will modify the method name too.","commit_id":"8388ce776f3c1d3af0a659a651d1105c435ef392"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9387a27627a42f7ffa422afb72335d31288eb959","unresolved":false,"context_lines":[{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def v3_request(self, path, **kwargs):"},{"line_number":366,"context_line":"        # TODO(gyee): need to fix all the v3 auth tests. They should not"},{"line_number":367,"context_line":"        # require the token header."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        # check to see if caller requires token for the API call."},{"line_number":370,"context_line":"        if kwargs.pop(\u0027noauth\u0027, None):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_3e91339a","line":367,"updated":"2014-06-27 20:56:36.000000000","message":"can this comment be removed with this patchset?","commit_id":"8388ce776f3c1d3af0a659a651d1105c435ef392"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"7270dd828698b2980f26597ef1a52dd195530517","unresolved":false,"context_lines":[{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def v3_request(self, path, **kwargs):"},{"line_number":366,"context_line":"        # TODO(gyee): need to fix all the v3 auth tests. They should not"},{"line_number":367,"context_line":"        # require the token header."},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        # check to see if caller requires token for the API call."},{"line_number":370,"context_line":"        if kwargs.pop(\u0027noauth\u0027, None):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_c1c78f10","line":367,"in_reply_to":"1ae5cdf2_3e91339a","updated":"2014-06-28 02:04:44.000000000","message":"OK.","commit_id":"8388ce776f3c1d3af0a659a651d1105c435ef392"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3ffdbcf6f5c0ac26e04d5f0894c9574bd474ca04","unresolved":false,"context_lines":[{"line_number":346,"context_line":"    def get_requested_token(self, auth):"},{"line_number":347,"context_line":"        \"\"\"Request the specific token we want.\"\"\""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        r \u003d self.v3_authenticate_token(auth\u003dauth)"},{"line_number":350,"context_line":"        return r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def v3_authenticate_token(self, auth, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_2ace165b","line":349,"updated":"2014-07-01 07:07:08.000000000","message":"(nit) Since auth is not defined as a kwarg it is best to call it like a positional arg.","commit_id":"59035ae0b21a3e45f7835b68422916fa34d3bec9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3ffdbcf6f5c0ac26e04d5f0894c9574bd474ca04","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        r \u003d self.v3_authenticate_token(auth\u003dauth)"},{"line_number":350,"context_line":"        return r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def v3_authenticate_token(self, auth, **kwargs):"},{"line_number":353,"context_line":"        return self.admin_request(method\u003d\u0027POST\u0027,"},{"line_number":354,"context_line":"                                  path\u003d\u0027/v3/auth/tokens\u0027,"},{"line_number":355,"context_line":"                                  body\u003dauth,"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_6a172eee","line":352,"updated":"2014-07-01 07:07:08.000000000","message":"Why have **kwargs here? The only kwarg that ever gets passed in is expected_status, so I think we should just explicitly add that kwarg with the proper default.","commit_id":"59035ae0b21a3e45f7835b68422916fa34d3bec9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a0bfa8b3eaf4f70d69d2503d987d9abdacf8600e","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        r \u003d self.v3_authenticate_token(auth)"},{"line_number":350,"context_line":"        return r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    def v3_authenticate_token(self, auth, expected_status\u003d201):"},{"line_number":353,"context_line":"        return self.admin_request(method\u003d\u0027POST\u0027,"},{"line_number":354,"context_line":"                                  path\u003d\u0027/v3/auth/tokens\u0027,"},{"line_number":355,"context_line":"                                  body\u003dauth,"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_55baf0de","line":352,"updated":"2014-07-01 17:49:05.000000000","message":"Nice. I was thinking None since that is the default of the called method, but this is much better.","commit_id":"e188d68b5ea5c0eda3ff085fe9c510474fed636e"}],"keystone/tests/test_v3_auth.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a0bfa8b3eaf4f70d69d2503d987d9abdacf8600e","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            self.build_authentication_request("},{"line_number":941,"context_line":"                user_id\u003dself.user3[\u0027id\u0027],"},{"line_number":942,"context_line":"                password\u003dself.user3[\u0027password\u0027],"},{"line_number":943,"context_line":"                project_id\u003dself.projectA[\u0027id\u0027]), 401)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def test_deleting_project_revokes_token(self):"},{"line_number":946,"context_line":"        token \u003d self.get_requested_token("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_806d2835","line":943,"updated":"2014-07-01 17:49:05.000000000","message":"Since expected_status is a kwarg you should leave this the way it was. This should be fixed in all of the calls.","commit_id":"e188d68b5ea5c0eda3ff085fe9c510474fed636e"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a84a7874e648171f280428e89295414e61839cb2","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            self.build_authentication_request("},{"line_number":941,"context_line":"                user_id\u003dself.user3[\u0027id\u0027],"},{"line_number":942,"context_line":"                password\u003dself.user3[\u0027password\u0027],"},{"line_number":943,"context_line":"                project_id\u003dself.projectA[\u0027id\u0027]), 401)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def test_deleting_project_revokes_token(self):"},{"line_number":946,"context_line":"        token \u003d self.get_requested_token("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_a493ab59","line":943,"in_reply_to":"baada198_32dffd6a","updated":"2014-07-04 09:09:31.000000000","message":"thank you!","commit_id":"e188d68b5ea5c0eda3ff085fe9c510474fed636e"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"9f64f406b36d16ce9edd1d6b8c81e3c301fcddfe","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            self.build_authentication_request("},{"line_number":941,"context_line":"                user_id\u003dself.user3[\u0027id\u0027],"},{"line_number":942,"context_line":"                password\u003dself.user3[\u0027password\u0027],"},{"line_number":943,"context_line":"                project_id\u003dself.projectA[\u0027id\u0027]), 401)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def test_deleting_project_revokes_token(self):"},{"line_number":946,"context_line":"        token \u003d self.get_requested_token("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_ff9d5a5a","line":943,"in_reply_to":"baada198_806d2835","updated":"2014-07-03 09:42:03.000000000","message":"hi David Stanek, I do think explicitly use the kwargs is better, but could you point out the particular reason for this? thanks for the help","commit_id":"e188d68b5ea5c0eda3ff085fe9c510474fed636e"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"12b9ebc82d15701013bb4e37b87539b436c8879f","unresolved":false,"context_lines":[{"line_number":940,"context_line":"            self.build_authentication_request("},{"line_number":941,"context_line":"                user_id\u003dself.user3[\u0027id\u0027],"},{"line_number":942,"context_line":"                password\u003dself.user3[\u0027password\u0027],"},{"line_number":943,"context_line":"                project_id\u003dself.projectA[\u0027id\u0027]), 401)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"    def test_deleting_project_revokes_token(self):"},{"line_number":946,"context_line":"        token \u003d self.get_requested_token("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_32dffd6a","line":943,"in_reply_to":"baada198_ff9d5a5a","updated":"2014-07-03 14:04:55.000000000","message":"I was going to link to our hacking doc, but I realized that it\u0027s not in there. Here is the review where I add that informaton: https://review.openstack.org/104552","commit_id":"e188d68b5ea5c0eda3ff085fe9c510474fed636e"}],"keystone/tests/test_v3_identity.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b7119e6e38546337a4f33252205a4e7fef021894","unresolved":false,"context_lines":[{"line_number":1920,"context_line":"        r \u003d self.post(\u0027/auth/tokens\u0027,"},{"line_number":1921,"context_line":"                      body\u003dauth_data,"},{"line_number":1922,"context_line":"                      expected_status\u003dexpected_status,"},{"line_number":1923,"context_line":"                      noauth\u003dTrue)"},{"line_number":1924,"context_line":"        return r.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":1925,"context_line":""},{"line_number":1926,"context_line":"    def change_password(self, expected_status, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_c6bde303","line":1923,"updated":"2014-07-07 05:45:27.000000000","message":"what\u0027s going on here?\n\nwhy not just:\n\n  self.v3_authenticate_token(auth_data, expected_status\u003dexpected_status)","commit_id":"9571239d828e0e14204e0b1faa123f5962f9f5e3"}]}
