)]}'
{"keystone/common/request.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"20d539b1daddacd05b3df5e26abf199c1c03008a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        context \u003d self.environ.get(CONTEXT_ENV, {})"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        try:"},{"line_number":36,"context_line":"            self.params.mixed()"},{"line_number":37,"context_line":"        except UnicodeDecodeError:"},{"line_number":38,"context_line":"            # The webob package throws UnicodeError when a request cannot be"},{"line_number":39,"context_line":"            # decoded. Raise ValidationError instead to avoid an UnknownError."}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_70f2ea70","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":31},"updated":"2016-07-05 13:22:35.000000000","message":"i don\u0027t get this, maybe add a comment?","commit_id":"a1596aa49311255f65705709acd28c8ec684436c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"1a8c88e4610306731ba19f17c985145d8e21e9c4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        context \u003d self.environ.get(CONTEXT_ENV, {})"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        try:"},{"line_number":36,"context_line":"            self.params.mixed()"},{"line_number":37,"context_line":"        except UnicodeDecodeError:"},{"line_number":38,"context_line":"            # The webob package throws UnicodeError when a request cannot be"},{"line_number":39,"context_line":"            # decoded. Raise ValidationError instead to avoid an UnknownError."}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_4f7d9bb0","line":36,"range":{"start_line":36,"start_character":24,"end_line":36,"end_character":31},"updated":"2016-07-05 09:19:58.000000000","message":"is there a reason we want to handle the duplicated-keyed values now?","commit_id":"a1596aa49311255f65705709acd28c8ec684436c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"51844172e5c6103bffa82178d40cd9786fd7efad","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # allow middleware up the stack to provide context, params and headers."},{"line_number":33,"context_line":"        context \u003d self.environ.get(CONTEXT_ENV, {})"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # NOTE(jamielennox): The webob package throws UnicodeError when a"},{"line_number":36,"context_line":"        # param cannot be decoded. If we make webob iterate them now we can"},{"line_number":37,"context_line":"        # catch this and throw an error early rather than on access."},{"line_number":38,"context_line":"        try:"},{"line_number":39,"context_line":"            self.params.items()"},{"line_number":40,"context_line":"        except UnicodeDecodeError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_72238056","line":37,"range":{"start_line":35,"start_character":8,"end_line":37,"end_character":68},"updated":"2016-07-07 16:48:04.000000000","message":"thanks for the explanation","commit_id":"8645d57165527f729f890d724f9ff0fa541b4db6"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b004850cf41ce980de08f5e2cef409e18a9a8d19","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # allow middleware up the stack to provide context, params and headers."},{"line_number":33,"context_line":"        context \u003d self.environ.get(CONTEXT_ENV, {})"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        # NOTE(jamielennox): The webob package throws UnicodeError when a"},{"line_number":36,"context_line":"        # param cannot be decoded. If we make webob iterate them now we can"},{"line_number":37,"context_line":"        # catch this and throw an error early rather than on access."},{"line_number":38,"context_line":"        try:"},{"line_number":39,"context_line":"            self.params.items()"},{"line_number":40,"context_line":"        except UnicodeDecodeError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_3e16b1a7","line":37,"range":{"start_line":35,"start_character":8,"end_line":37,"end_character":68},"in_reply_to":"1aa78d24_72238056","updated":"2016-07-08 13:42:09.000000000","message":"++","commit_id":"8645d57165527f729f890d724f9ff0fa541b4db6"}],"keystone/tests/unit/test_wsgi.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"a731f462902e90e376d482fd758585ad1593b56f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_query_string_available(self):"},{"line_number":90,"context_line":"        class FakeApp(wsgi.Application):"},{"line_number":91,"context_line":"            def index(self, request):"},{"line_number":92,"context_line":"                return request.params.mixed()"},{"line_number":93,"context_line":"        req \u003d self._make_request(url\u003d\u0027/?1\u003d2\u0027)"},{"line_number":94,"context_line":"        resp \u003d req.get_response(FakeApp())"},{"line_number":95,"context_line":"        self.assertEqual({\u00271\u0027: \u00272\u0027}, jsonutils.loads(resp.body))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_54245dc5","line":92,"range":{"start_line":92,"start_character":23,"end_line":92,"end_character":30},"updated":"2016-07-08 01:19:29.000000000","message":"note to henry: mixed() here returns a dict like the tests expect rather than .items() which returns a list","commit_id":"8645d57165527f729f890d724f9ff0fa541b4db6"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b004850cf41ce980de08f5e2cef409e18a9a8d19","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_query_string_available(self):"},{"line_number":90,"context_line":"        class FakeApp(wsgi.Application):"},{"line_number":91,"context_line":"            def index(self, request):"},{"line_number":92,"context_line":"                return request.params.mixed()"},{"line_number":93,"context_line":"        req \u003d self._make_request(url\u003d\u0027/?1\u003d2\u0027)"},{"line_number":94,"context_line":"        resp \u003d req.get_response(FakeApp())"},{"line_number":95,"context_line":"        self.assertEqual({\u00271\u0027: \u00272\u0027}, jsonutils.loads(resp.body))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_9e8245c7","line":92,"range":{"start_line":92,"start_character":23,"end_line":92,"end_character":30},"in_reply_to":"1aa78d24_03a0d4a4","updated":"2016-07-08 13:42:09.000000000","message":"dict(self.params.items()) is a dict\n\nand request.params.mixed() is still a dict :-)","commit_id":"8645d57165527f729f890d724f9ff0fa541b4db6"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"20e725d7a897d51ffdcc042ae8f180cca6df9c40","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    def test_query_string_available(self):"},{"line_number":90,"context_line":"        class FakeApp(wsgi.Application):"},{"line_number":91,"context_line":"            def index(self, request):"},{"line_number":92,"context_line":"                return request.params.mixed()"},{"line_number":93,"context_line":"        req \u003d self._make_request(url\u003d\u0027/?1\u003d2\u0027)"},{"line_number":94,"context_line":"        resp \u003d req.get_response(FakeApp())"},{"line_number":95,"context_line":"        self.assertEqual({\u00271\u0027: \u00272\u0027}, jsonutils.loads(resp.body))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_03a0d4a4","line":92,"range":{"start_line":92,"start_character":23,"end_line":92,"end_character":30},"in_reply_to":"1aa78d24_54245dc5","updated":"2016-07-08 07:41:49.000000000","message":"OK, I\u0027ll believe you! Although in that case I\u0027m unsure how it worked before? i.e. when the request class set context_dict[\u0027query_string\u0027] \u003d dict(self.parms.items())","commit_id":"8645d57165527f729f890d724f9ff0fa541b4db6"}]}
