)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"904b2be5eab0a37b90a02b5a83d093ea7f90ff45","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Rework the tests to extract a mock fixture that is capable of mocking"},{"line_number":10,"context_line":"server authenticated requests. Set the plugin to mutual authentication"},{"line_number":11,"context_line":"by default."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I06daea59d25cd63c552f2db9f663bbc33e659ed5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a4dcd0f_37e563db","line":11,"updated":"2015-08-05 15:42:10.000000000","message":"This is changing a public API. There needs to be a bug so that we can advertise it. Can these 2 changes be separate commits?","commit_id":"f9f8e8aa776873482b6ae9875d9ad3b84b4c6150"}],"keystoneclient_kerberos/tests/base.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4754508ade5f2b19388a3bb5377c13f0fc97f7d9","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestCase(base.BaseTestCase):"},{"line_number":29,"context_line":"    \"\"\"Test case base class for all unit tests.\"\"\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    TEST_ROOT_URL \u003d \u0027http://keystoneserver.test.com:5000/\u0027"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_a04ad3aa","line":29,"updated":"2015-07-13 14:36:53.000000000","message":"revert unrelated whitespace change on previous line.","commit_id":"c7839073c8ce9f83ef2c8bca771292a45122ba4f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4754508ade5f2b19388a3bb5377c13f0fc97f7d9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"class TestCase(base.BaseTestCase):"},{"line_number":29,"context_line":"    \"\"\"Test case base class for all unit tests.\"\"\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    TEST_ROOT_URL \u003d \u0027http://keystoneserver.test.com:5000/\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(TestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_20ec838e","line":31,"updated":"2015-07-13 14:36:53.000000000","message":"where does the value come from? Add a comment.","commit_id":"c7839073c8ce9f83ef2c8bca771292a45122ba4f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4754508ade5f2b19388a3bb5377c13f0fc97f7d9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self.requests_mock \u003d self.useFixture(requests_fixture.Fixture())"},{"line_number":37,"context_line":"        self.kerberos_mock \u003d self.useFixture(utils.KerberosMock())"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def assertRequestBody(self, body\u003dNone):"},{"line_number":40,"context_line":"        if not body:"},{"line_number":41,"context_line":"            body \u003d self.requests_mock.last_request.json()"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_e073fbe5","line":39,"updated":"2015-07-13 14:36:53.000000000","message":"this could use a docstring to say that if the body is left off it\u0027s going to use the last request.","commit_id":"c7839073c8ce9f83ef2c8bca771292a45122ba4f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4754508ade5f2b19388a3bb5377c13f0fc97f7d9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        if not body:"},{"line_number":41,"context_line":"            body \u003d self.requests_mock.last_request.json()"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        request \u003d {\u0027auth\u0027: {\u0027identity\u0027: {\u0027methods\u0027: [\u0027kerberos\u0027],"},{"line_number":44,"context_line":"                                         \u0027kerberos\u0027: {}}}}"},{"line_number":45,"context_line":"        self.assertEqual(request, body)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_20ba436f","line":43,"updated":"2015-07-13 14:36:53.000000000","message":"was the REQUEST constant supposed to be used here? It\u0027s the same.","commit_id":"c7839073c8ce9f83ef2c8bca771292a45122ba4f"}],"keystoneclient_kerberos/tests/test_v3.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4754508ade5f2b19388a3bb5377c13f0fc97f7d9","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.kerberos_mock.pass_resp[\u0027headers\u0027].update(headers)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.requests_mock.post(self.TEST_ROOT_URL + \u0027v3/auth/tokens\u0027,"},{"line_number":38,"context_line":"                                response_list\u003dself.kerberos_mock.resp_list)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        a \u003d v3.Kerberos(self.TEST_ROOT_URL + \u0027v3\u0027)"},{"line_number":41,"context_line":"        s \u003d session.Session(a)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_23248dad","line":38,"updated":"2015-07-13 14:36:53.000000000","message":"I\u0027d expect this to all be handled by the kerberos mock.","commit_id":"c7839073c8ce9f83ef2c8bca771292a45122ba4f"}],"keystoneclient_kerberos/tests/utils.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"904b2be5eab0a37b90a02b5a83d093ea7f90ff45","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_97f0f7ff","line":1,"updated":"2015-08-05 15:42:10.000000000","message":"I\u0027d prefer it if this file was called \"mocks\" and then change \"KerberosMock\" to \"Kerberos\".","commit_id":"f9f8e8aa776873482b6ae9875d9ad3b84b4c6150"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"904b2be5eab0a37b90a02b5a83d093ea7f90ff45","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def setUp(self):"},{"line_number":35,"context_line":"        super(KerberosMock, self).setUp()"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        m \u003d mockpatch.PatchObject(requests_kerberos.HTTPKerberosAuth,"},{"line_number":38,"context_line":"                                  \u0027generate_request_header\u0027,"},{"line_number":39,"context_line":"                                  self._generate_request_header)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_17206747","line":37,"updated":"2015-08-05 15:42:10.000000000","message":"A comment explaining why this is correct would be useful.","commit_id":"f9f8e8aa776873482b6ae9875d9ad3b84b4c6150"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"904b2be5eab0a37b90a02b5a83d093ea7f90ff45","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                                  \u0027generate_request_header\u0027,"},{"line_number":39,"context_line":"                                  self._generate_request_header)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.header_fixture \u003d self.useFixture(m)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        m \u003d mockpatch.PatchObject(requests_kerberos.HTTPKerberosAuth,"},{"line_number":44,"context_line":"                                  \u0027authenticate_server\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_3797a33b","line":41,"updated":"2015-08-05 15:42:10.000000000","message":"is there any reason to keep this around?","commit_id":"f9f8e8aa776873482b6ae9875d9ad3b84b4c6150"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"904b2be5eab0a37b90a02b5a83d093ea7f90ff45","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        self.header_fixture \u003d self.useFixture(m)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        m \u003d mockpatch.PatchObject(requests_kerberos.HTTPKerberosAuth,"},{"line_number":44,"context_line":"                                  \u0027authenticate_server\u0027,"},{"line_number":45,"context_line":"                                  self._authenticate_server)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_d7151fe5","line":43,"updated":"2015-08-05 15:42:10.000000000","message":"A comment explaining why this is correct would be useful.","commit_id":"f9f8e8aa776873482b6ae9875d9ad3b84b4c6150"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"904b2be5eab0a37b90a02b5a83d093ea7f90ff45","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                                  \u0027authenticate_server\u0027,"},{"line_number":45,"context_line":"                                  self._authenticate_server)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.authenticate_fixture \u003d self.useFixture(m)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _generate_request_header(self, *args, **kwargs):"},{"line_number":50,"context_line":"        return self.challenge_header"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_579caf5c","line":47,"updated":"2015-08-05 15:42:10.000000000","message":"is there any reason to keep this around?","commit_id":"f9f8e8aa776873482b6ae9875d9ad3b84b4c6150"}],"keystoneclient_kerberos/v3.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4754508ade5f2b19388a3bb5377c13f0fc97f7d9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    def get_auth_data(self, session, auth, headers, request_kwargs, **kwargs):"},{"line_number":22,"context_line":"        # NOTE(jamielennox): request_kwargs is passed as a kwarg however it is"},{"line_number":23,"context_line":"        # required and always present when called from keystoneclient."},{"line_number":24,"context_line":"        request_kwargs[\u0027requests_auth\u0027] \u003d requests_kerberos.HTTPKerberosAuth()"},{"line_number":25,"context_line":"        return \u0027kerberos\u0027, {}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_03270965","line":24,"updated":"2015-07-13 14:36:53.000000000","message":"this change seems unrelated to the other changes in this commit?","commit_id":"c7839073c8ce9f83ef2c8bca771292a45122ba4f"}]}
