)]}'
{"keystoneclient/httpclient.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"684017bce8677b5fc6142c46e7df1c88bd05ac86","unresolved":false,"context_lines":[{"line_number":580,"context_line":"            url \u003d url_to_use + url"},{"line_number":581,"context_line":"        except UnicodeDecodeError:"},{"line_number":582,"context_line":"            url \u003d url_to_use.decode(\u0027utf-8\u0027, \u0027strict\u0027) + \\"},{"line_number":583,"context_line":"                url.decode(\u0027utf-8\u0027, \u0027strict\u0027)"},{"line_number":584,"context_line":"        resp, body \u003d self.request(url, method, **kwargs)"},{"line_number":585,"context_line":"        return resp, body"},{"line_number":586,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FxH4%3D","line":583,"updated":"2014-01-08 17:44:21.000000000","message":"why bother with the try/except? why not just always decode the url?","commit_id":"bee8183ea480e9dfd3a2c7d80d040da670f683f5"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b08980c5650dd9ef873a1084ceddafc1ae527b1f","unresolved":false,"context_lines":[{"line_number":576,"context_line":"        if self.auth_token:"},{"line_number":577,"context_line":"            kwargs[\u0027headers\u0027][\u0027X-Auth-Token\u0027] \u003d self.auth_token"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"        url \u003d url_to_use.decode(\u0027utf-8\u0027, \u0027strict\u0027) + \\"},{"line_number":580,"context_line":"            url.decode(\u0027utf-8\u0027, \u0027strict\u0027)"},{"line_number":581,"context_line":"        resp, body \u003d self.request(url, method, **kwargs)"},{"line_number":582,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fcuw%3D","line":579,"updated":"2014-01-13 19:19:19.000000000","message":"lots of options here to avoid using line continuations and clarify what \u0027url to use\u0027 is vs \u0027url\u0027\n\n  endpoint \u003d self.management_url if is_management else self.auth_url\n\n  url \u003d \u0027%(endpoint)s%(path)s\u0027 % {\n    \u0027endpoint\u0027: endpoint.decode(\u0027utf-8\u0027, \u0027strict\u0027),\n    \u0027path\u0027: url.decode(\u0027utf-8\u0027, \u0027strict\u0027),\n  }","commit_id":"359e6382b6ca48afec06cfb8556e0bde494ba380"},{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"b5783d595b4671fbc5f323c9a3d43d87780afa01","unresolved":false,"context_lines":[{"line_number":577,"context_line":""},{"line_number":578,"context_line":"        url \u003d \u0027%(endpoint)s%(path)s\u0027 % {"},{"line_number":579,"context_line":"            \u0027endpoint\u0027: strutils.safe_decode(endpoint),"},{"line_number":580,"context_line":"            \u0027path\u0027: strutils.safe_decode(url)}"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        resp, body \u003d self.request(url, method, **kwargs)"},{"line_number":583,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2BsMI%3D","line":580,"updated":"2014-01-23 05:45:33.000000000","message":"Hello, Brant Knudson\n\nDo you mean we should use six.moves.urllib.parse.quote instead of strutils.safe_decode here?","commit_id":"5b1269e29ed6a822851b1031777c32e053c0fe7a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dfd5b0d494a78927defbd0c335691e0c1538da09","unresolved":false,"context_lines":[{"line_number":578,"context_line":"        endpoint \u003d self.management_url if is_management else self.auth_url"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        url \u003d \u0027%(endpoint)s%(path)s\u0027 % {"},{"line_number":581,"context_line":"            \u0027endpoint\u0027: strutils.safe_decode(endpoint),"},{"line_number":582,"context_line":"            \u0027path\u0027: strutils.safe_decode(url)}"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        resp, body \u003d self.request(url, method, **kwargs)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2Bb%2BA%3D","line":581,"updated":"2014-01-26 15:50:45.000000000","message":"why are we safe decoding? the endpoint should be a valid URL. The client lib shouldn\u0027t have to do anything with the endpoint.","commit_id":"7497fdce21c29ecef7bdee728d64a7016491964b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"dfd5b0d494a78927defbd0c335691e0c1538da09","unresolved":false,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"        url \u003d \u0027%(endpoint)s%(path)s\u0027 % {"},{"line_number":581,"context_line":"            \u0027endpoint\u0027: strutils.safe_decode(endpoint),"},{"line_number":582,"context_line":"            \u0027path\u0027: strutils.safe_decode(url)}"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        resp, body \u003d self.request(url, method, **kwargs)"},{"line_number":585,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F%2Bb9s%3D","line":582,"updated":"2014-01-26 15:50:45.000000000","message":"safe_decode isn\u0027t going to be a valid URL. This should be using a URL escaping method -- Probably this one: http://docs.python.org/2/library/urllib.html#urllib.quote","commit_id":"7497fdce21c29ecef7bdee728d64a7016491964b"}],"keystoneclient/tests/test_http.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"8d9ffc2836d30c5b82354f8cc7358f4a2231fc2b","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        cl.request \u003d mock.Mock()"},{"line_number":132,"context_line":"        cl.request.return_value \u003d (None, None)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        cl.delete(u\u0027/\\u6d4b\\u8bd5\u0027.encode(\u0027utf-8\u0027))"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @httpretty.activate"},{"line_number":137,"context_line":"    def test_forwarded_for(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FZ08%3D","line":134,"updated":"2014-01-14 04:12:01.000000000","message":"you shouldn\u0027t have to encode this here.","commit_id":"bb8d66fb78f93f536cb932f3aa5d5c0b7043805a"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"ee0576f929817c24059d42ba94b61f39aaf6d7d1","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        cl.request \u003d mock.Mock()"},{"line_number":132,"context_line":"        cl.request.return_value \u003d (None, None)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        cl.delete(u\u0027/\\u6d4b\\u8bd5\u0027.encode(\u0027utf-8\u0027))"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @httpretty.activate"},{"line_number":137,"context_line":"    def test_forwarded_for(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FUco%3D","line":134,"updated":"2014-01-15 03:51:24.000000000","message":"can we do another one here where we pass through the actual unicode string to make sure that it is passed through unaffected.","commit_id":"0f6dab3d037c916fc777fdb6b555e98da8492f91"}]}
