)]}'
{"keystoneclient/tests/auth/test_identity_common.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"40596caca4c42ded09c6220374ae777b490dd7b2","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    def test_discovery_uses_session_cache(self):"},{"line_number":126,"context_line":"        # register responses such that if the discovery URL is hit more than"},{"line_number":127,"context_line":"        # once then the response will be invalid and not point to COMPUTE_ADMIN"},{"line_number":128,"context_line":"        resps \u003d [{\u0027json\u0027: self.TEST_DISCOVERY}, {\u0027status_code\u0027: 500}]"},{"line_number":129,"context_line":"        self.requests.register_uri(\u0027GET\u0027, self.TEST_COMPUTE_ADMIN, resps)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        body \u003d \u0027SUCCESS\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_7d51afd8","line":128,"updated":"2014-07-29 19:55:31.000000000","message":"that\u0027s weird","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}],"keystoneclient/tests/test_auth_token_middleware.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"40596caca4c42ded09c6220374ae777b490dd7b2","unresolved":false,"context_lines":[{"line_number":1456,"context_line":"            \u0027auth_version\u0027: \u0027v2.0\u0027"},{"line_number":1457,"context_line":"        }"},{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"        self.requests.register_uri(\u0027GET\u0027, \u0027%s/\u0027 % BASE_URI,"},{"line_number":1460,"context_line":"                                   text\u003dVERSION_LIST_v3, status_code\u003d300)"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"        self.requests.register_uri(\u0027POST\u0027, \u0027%s/v2.0/tokens\u0027 % BASE_URI,"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_dda2bbac","line":1459,"updated":"2014-07-29 19:55:31.000000000","message":"out of scope, but the trailing slash shouldn\u0027t be necessary","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":1456,"context_line":"            \u0027auth_version\u0027: \u0027v2.0\u0027"},{"line_number":1457,"context_line":"        }"},{"line_number":1458,"context_line":""},{"line_number":1459,"context_line":"        self.requests.register_uri(\u0027GET\u0027, \u0027%s/\u0027 % BASE_URI,"},{"line_number":1460,"context_line":"                                   text\u003dVERSION_LIST_v3, status_code\u003d300)"},{"line_number":1461,"context_line":""},{"line_number":1462,"context_line":"        self.requests.register_uri(\u0027POST\u0027, \u0027%s/v2.0/tokens\u0027 % BASE_URI,"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_68380f3c","line":1459,"in_reply_to":"baada198_dda2bbac","updated":"2014-07-29 20:05:39.000000000","message":"actually this is an artifact of httpretty that we should be able to get rid of now","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"40596caca4c42ded09c6220374ae777b490dd7b2","unresolved":false,"context_lines":[{"line_number":1554,"context_line":""},{"line_number":1555,"context_line":"        self.set_middleware()"},{"line_number":1556,"context_line":""},{"line_number":1557,"context_line":"    def token_response(self, request, context):"},{"line_number":1558,"context_line":"        auth_id \u003d request.headers.get(\u0027X-Auth-Token\u0027)"},{"line_number":1559,"context_line":"        token_id \u003d request.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":1560,"context_line":"        self.assertEqual(auth_id, FAKE_ADMIN_TOKEN_ID)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_9d6f6360","line":1557,"updated":"2014-07-29 19:55:31.000000000","message":"is this ever used?","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":1554,"context_line":""},{"line_number":1555,"context_line":"        self.set_middleware()"},{"line_number":1556,"context_line":""},{"line_number":1557,"context_line":"    def token_response(self, request, context):"},{"line_number":1558,"context_line":"        auth_id \u003d request.headers.get(\u0027X-Auth-Token\u0027)"},{"line_number":1559,"context_line":"        token_id \u003d request.headers.get(\u0027X-Subject-Token\u0027)"},{"line_number":1560,"context_line":"        self.assertEqual(auth_id, FAKE_ADMIN_TOKEN_ID)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_a84227a9","line":1557,"in_reply_to":"baada198_9d6f6360","updated":"2014-07-29 20:05:39.000000000","message":"yes, it is a callback function and it\u0027s a couple of lines above here.","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}],"keystoneclient/tests/utils.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9b26257d2f00167a268ad36ea914f80616ed901a","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class TestCase(testtools.TestCase):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    TEST_DOMAIN_ID \u003d \u00271\u0027"},{"line_number":33,"context_line":"    TEST_DOMAIN_NAME \u003d \u0027aDomain\u0027"},{"line_number":34,"context_line":"    TEST_GROUP_ID \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_1d435314","line":31,"updated":"2014-07-29 19:37:01.000000000","message":"(NIT): whitespace change","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9b26257d2f00167a268ad36ea914f80616ed901a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        expected \u003d urlparse.parse_qs(qs)"},{"line_number":91,"context_line":"        parts \u003d urlparse.urlparse(self.requests.last_request.url)"},{"line_number":92,"context_line":"        querystring \u003d urlparse.parse_qs(parts.query)"},{"line_number":93,"context_line":"        self.assertEqual(expected, querystring)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def assertQueryStringContains(self, **kwargs):"},{"line_number":96,"context_line":"        parts \u003d urlparse.urlparse(self.requests.last_request.url)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_5d6b0b86","line":93,"updated":"2014-07-29 19:37:01.000000000","message":"I kindof wish requests-mock didn\u0027t require urlparse to extract the query string here. last_request.query_string is a nice interface.","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        expected \u003d urlparse.parse_qs(qs)"},{"line_number":91,"context_line":"        parts \u003d urlparse.urlparse(self.requests.last_request.url)"},{"line_number":92,"context_line":"        querystring \u003d urlparse.parse_qs(parts.query)"},{"line_number":93,"context_line":"        self.assertEqual(expected, querystring)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def assertQueryStringContains(self, **kwargs):"},{"line_number":96,"context_line":"        parts \u003d urlparse.urlparse(self.requests.last_request.url)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_88c0032d","line":93,"in_reply_to":"baada198_5d6b0b86","updated":"2014-07-29 20:05:39.000000000","message":"yea, i\u0027ve thought that myself.\n\nIn this case the last_request is actually a requests.Request, i need to figure out how to do the same thing there","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9b26257d2f00167a268ad36ea914f80616ed901a","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def assertQueryStringContains(self, **kwargs):"},{"line_number":96,"context_line":"        parts \u003d urlparse.urlparse(self.requests.last_request.url)"},{"line_number":97,"context_line":"        qs \u003d urlparse.parse_qs(parts.query)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        for k, v in six.iteritems(kwargs):"},{"line_number":100,"context_line":"            self.assertIn(k, qs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_bd0187b7","line":97,"updated":"2014-07-29 19:37:01.000000000","message":"Same as above (line 93)","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}],"keystoneclient/tests/v2_0/test_users.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"40596caca4c42ded09c6220374ae777b490dd7b2","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        user_list \u003d self.client.users.list(limit\u003d1, marker\u003d\u0027foo\u0027)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        self.assertQueryStringIs(\u0027marker\u003dfoo\u0026limit\u003d1\u0027)"},{"line_number":189,"context_line":"        [self.assertIsInstance(u, users.User) for u in user_list]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_update(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_7d544f22","line":188,"updated":"2014-07-29 19:55:31.000000000","message":"wondering if this can lead to a transient due to order","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        user_list \u003d self.client.users.list(limit\u003d1, marker\u003d\u0027foo\u0027)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        self.assertQueryStringIs(\u0027marker\u003dfoo\u0026limit\u003d1\u0027)"},{"line_number":189,"context_line":"        [self.assertIsInstance(u, users.User) for u in user_list]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_update(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_681f2fb9","line":188,"in_reply_to":"baada198_7d544f22","updated":"2014-07-29 20:05:39.000000000","message":"assertQueryStringIs handles the ordering","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}],"keystoneclient/tests/v3/client_fixtures.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"40596caca4c42ded09c6220374ae777b490dd7b2","unresolved":false,"context_lines":[{"line_number":122,"context_line":"AUTH_SUBJECT_TOKEN \u003d \u00273e2813b7ba0b4006840c3825860b86ed\u0027"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"AUTH_RESPONSE_HEADERS \u003d {"},{"line_number":125,"context_line":"    \u0027X-Subject-Token\u0027: AUTH_SUBJECT_TOKEN,"},{"line_number":126,"context_line":"}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_fd377ffc","line":125,"updated":"2014-07-29 19:55:31.000000000","message":"++ super critical to this patch","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":122,"context_line":"AUTH_SUBJECT_TOKEN \u003d \u00273e2813b7ba0b4006840c3825860b86ed\u0027"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"AUTH_RESPONSE_HEADERS \u003d {"},{"line_number":125,"context_line":"    \u0027X-Subject-Token\u0027: AUTH_SUBJECT_TOKEN,"},{"line_number":126,"context_line":"}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_288537cf","line":125,"in_reply_to":"baada198_fd377ffc","updated":"2014-07-29 20:05:39.000000000","message":"lol, oops","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}],"keystoneclient/tests/v3/saml2_fixtures.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"9b26257d2f00167a268ad36ea914f80616ed901a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"\"\"\")"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"SAML2_ASSERTION \u003d six.b(\"\"\"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e"},{"line_number":51,"context_line":"\u003csoap11:Envelope xmlns:soap11\u003d\"http://schemas.xmlsoap.org/soap/envelope/\"\u003e"},{"line_number":52,"context_line":"\u003csoap11:Header\u003e"},{"line_number":53,"context_line":"\u003cecp:Response xmlns:ecp\u003d\"urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp\""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_9dc12351","line":50,"updated":"2014-07-29 19:37:01.000000000","message":"(NIT): Was this change needed in this patch? it seems superfluous (but still good overall)","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":47,"context_line":"\"\"\")"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"SAML2_ASSERTION \u003d six.b(\"\"\"\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e"},{"line_number":51,"context_line":"\u003csoap11:Envelope xmlns:soap11\u003d\"http://schemas.xmlsoap.org/soap/envelope/\"\u003e"},{"line_number":52,"context_line":"\u003csoap11:Header\u003e"},{"line_number":53,"context_line":"\u003cecp:Response xmlns:ecp\u003d\"urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp\""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_4850ab5f","line":50,"in_reply_to":"baada198_9dc12351","updated":"2014-07-29 20:05:39.000000000","message":"no, it isn\u0027t necessary at all, from memory i tried to remove it thinking that it should be just a text string and found that it doesn\u0027t work.\n\nI must have added it back incorrectly","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}],"keystoneclient/tests/v3/utils.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"40596caca4c42ded09c6220374ae777b490dd7b2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        else:"},{"line_number":148,"context_line":"            for resp in response_list:"},{"line_number":149,"context_line":"                headers \u003d resp.setdefault(\u0027headers\u0027, {})"},{"line_number":150,"context_line":"                headers[\u0027X-Subject-Token\u0027] \u003d subject_token"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        self.stub_url(\u0027POST\u0027, [\u0027auth\u0027, \u0027tokens\u0027], **kwargs)"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_08231359","line":150,"updated":"2014-07-29 19:55:31.000000000","message":"this is weird","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b63a53502426276907acfca4357c2675205bb0f4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        else:"},{"line_number":148,"context_line":"            for resp in response_list:"},{"line_number":149,"context_line":"                headers \u003d resp.setdefault(\u0027headers\u0027, {})"},{"line_number":150,"context_line":"                headers[\u0027X-Subject-Token\u0027] \u003d subject_token"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        self.stub_url(\u0027POST\u0027, [\u0027auth\u0027, \u0027tokens\u0027], **kwargs)"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_08ceb32d","line":150,"in_reply_to":"baada198_08231359","updated":"2014-07-29 20:05:39.000000000","message":"useful though, it means you can stub a series of responses and have the token added to each of them rather than just the one.","commit_id":"b487f946cd60a907174f550e08372d5907ca319f"}]}
