)]}'
{"keystone/common/wsgi.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"aae45878e0485acd5f26bb923a9bf665c7459cbf","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            return render_exception(e)"},{"line_number":234,"context_line":"        except exception.Error as e:"},{"line_number":235,"context_line":"            LOG.warning(e)"},{"line_number":236,"context_line":"            return render_exception(exception.Error(e))"},{"line_number":237,"context_line":"        except TypeError as e:"},{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B0QQ%3D","line":236,"updated":"2013-02-18 17:44:53.000000000","message":"sorry to block, but i don\u0027t think this change was intended... you already have an instance of exception.Error and wrapping it like this actually creates a security vulnerability for SecurityErrors","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aca5ce954dad1777d9c693513f5da5e34fccf5f8","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            LOG.warning(e)"},{"line_number":356,"context_line":"            return render_exception(e)"},{"line_number":357,"context_line":"        except TypeError as e:"},{"line_number":358,"context_line":"            logging.exception(e)"},{"line_number":359,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":360,"context_line":"        except Exception as e:"},{"line_number":361,"context_line":"            logging.exception(e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BxqQ%3D","line":358,"updated":"2013-02-19 15:08:43.000000000","message":"should this be LOG.exception(e)?","commit_id":"24824cca03f7963b8db88c5b2a92f5a194d6673e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aca5ce954dad1777d9c693513f5da5e34fccf5f8","unresolved":false,"context_lines":[{"line_number":358,"context_line":"            logging.exception(e)"},{"line_number":359,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":360,"context_line":"        except Exception as e:"},{"line_number":361,"context_line":"            logging.exception(e)"},{"line_number":362,"context_line":"            return render_exception(exception.UnexpectedError(exception\u003de))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BxqA%3D","line":361,"updated":"2013-02-19 15:08:43.000000000","message":"should this be LOG.exception(e)?","commit_id":"24824cca03f7963b8db88c5b2a92f5a194d6673e"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"393b2d4aca4a40c4602f9451e89e744ce7957631","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            return render_exception(e)"},{"line_number":234,"context_line":"        except exception.Error as e:"},{"line_number":235,"context_line":"            LOG.warning(e)"},{"line_number":236,"context_line":"            return render_exception(exception.Error(e))"},{"line_number":237,"context_line":"        except TypeError as e:"},{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxZo%3D","line":236,"updated":"2013-02-19 16:02:13.000000000","message":"You already have an instance of exception.Error in e","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"2a08dd089dbef944a5da1647f82b10ba46fcad6a","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            return render_exception(e)"},{"line_number":234,"context_line":"        except exception.Error as e:"},{"line_number":235,"context_line":"            LOG.warning(e)"},{"line_number":236,"context_line":"            return render_exception(exception.Error(e))"},{"line_number":237,"context_line":"        except TypeError as e:"},{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxX4%3D","line":236,"in_reply_to":"AAAAM3%2F%2BxZo%3D","updated":"2013-02-19 16:09:11.000000000","message":"I am really not sure how this came back here when it should have been removed earlier, thanks for spotting.","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"393b2d4aca4a40c4602f9451e89e744ce7957631","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            LOG.warning(e)"},{"line_number":236,"context_line":"            return render_exception(exception.Error(e))"},{"line_number":237,"context_line":"        except TypeError as e:"},{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":240,"context_line":"        except Exception as e:"},{"line_number":241,"context_line":"            logging.exception(e)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxZY%3D","line":238,"updated":"2013-02-19 16:02:13.000000000","message":"This should be LOG.exception, shouldn\u0027t it?","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"393b2d4aca4a40c4602f9451e89e744ce7957631","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":240,"context_line":"        except Exception as e:"},{"line_number":241,"context_line":"            logging.exception(e)"},{"line_number":242,"context_line":"            return render_exception(exception.UnexpectedError(exception\u003de))"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if result is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxZU%3D","line":241,"updated":"2013-02-19 16:02:13.000000000","message":"Same as above.","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"be1a104f729073afcfc3b268daba7dc963f0a2a5","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":240,"context_line":"        except Exception as e:"},{"line_number":241,"context_line":"            logging.exception(e)"},{"line_number":242,"context_line":"            return render_exception(exception.UnexpectedError(exception\u003de))"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if result is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxUo%3D","line":241,"in_reply_to":"AAAAM3%2F%2BxWE%3D","updated":"2013-02-19 16:29:03.000000000","message":"Sorry, forget about this, I was wrong!","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"d148e4d3777ba870cd60fb0a917a23dad449d24c","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":240,"context_line":"        except Exception as e:"},{"line_number":241,"context_line":"            logging.exception(e)"},{"line_number":242,"context_line":"            return render_exception(exception.UnexpectedError(exception\u003de))"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if result is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxWE%3D","line":241,"in_reply_to":"AAAAM3%2F%2BxXk%3D","updated":"2013-02-19 16:18:31.000000000","message":"Wasn\u0027t it introduced in your first patch?","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"2a08dd089dbef944a5da1647f82b10ba46fcad6a","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            logging.exception(e)"},{"line_number":239,"context_line":"            return render_exception(exception.ValidationError(e))"},{"line_number":240,"context_line":"        except Exception as e:"},{"line_number":241,"context_line":"            logging.exception(e)"},{"line_number":242,"context_line":"            return render_exception(exception.UnexpectedError(exception\u003de))"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if result is None:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2BxXk%3D","line":241,"in_reply_to":"AAAAM3%2F%2BxZU%3D","updated":"2013-02-19 16:09:11.000000000","message":"I think that\u0027s another patch?, I am not sure what the policy on keystone for side fixes.","commit_id":"570234141918e99bb4cb261cbf5feedc9cc2510b"}],"tests/test_wsgi.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c0b4624dd768f0b2727f06b650f76f7c1d5914b5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def test_middleware_good_requests(self):"},{"line_number":88,"context_line":"        req \u003d self._make_request()"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        class FakeApp(wsgi.Application):"},{"line_number":91,"context_line":"            def index(self, context):"},{"line_number":92,"context_line":"                pass"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B0w4%3D","line":90,"updated":"2013-02-18 14:36:52.000000000","message":"you could make this a class attribute of MiddlewareTest since all tests consume it\n\non that note -- it looks like you\u0027ve really written 5 tests here, but combined them into two test_* methods -- can you break it up into 5 tests and name them accordingly?","commit_id":"9bc5d2ccc7e88a3845b47414141befd9ddbcb507"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c0b4624dd768f0b2727f06b650f76f7c1d5914b5","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        req \u003d self._make_request()"},{"line_number":119,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":120,"context_line":"        resp \u003d FakeMiddleware(FakeApp())(req)"},{"line_number":121,"context_line":"        self.assertEquals(resp.status_int, exception.Unauthorized().code)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        class FakeMiddleware(wsgi.Middleware):"},{"line_number":124,"context_line":"            def process_response(self, request, response):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2B0wU%3D","line":121,"updated":"2013-02-18 14:36:52.000000000","message":"you can remove the () on Unauthorized, as you should be able to access the class attribute without instantiating an instance","commit_id":"9bc5d2ccc7e88a3845b47414141befd9ddbcb507"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"44c7bd49f2c5475cb10ebfded06e5b727034a4f5","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                raise exception.Unauthorized()"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        req \u003d self._make_request()"},{"line_number":112,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":113,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":114,"context_line":"        self.assertEquals(resp.status_int, exception.Unauthorized.code)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B0O8%3D","line":112,"updated":"2013-02-18 17:49:04.000000000","message":"test.com is a real thing -- change to example.com which is an IANA-owned black hole","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"fe890caa431458647fbe64db7384262dd1ae050e","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                raise exception.Unauthorized()"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        req \u003d self._make_request()"},{"line_number":112,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":113,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":114,"context_line":"        self.assertEquals(resp.status_int, exception.Unauthorized.code)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Bz3k%3D","line":112,"in_reply_to":"AAAAM3%2F%2B0O8%3D","updated":"2013-02-18 19:57:51.000000000","message":"actually I got it more badly :(, REMOTE_ADDR should be an ipaddr instead of domain name.","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"93ff2b1afe57c410b2ae5b79590244abc48881d1","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                raise exception.Unauthorized()"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        req \u003d self._make_request()"},{"line_number":112,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":113,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":114,"context_line":"        self.assertEquals(resp.status_int, exception.Unauthorized.code)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Bz2o%3D","line":112,"in_reply_to":"AAAAM3%2F%2Bz3k%3D","updated":"2013-02-18 20:00:36.000000000","message":"ah, didn\u0027t even realize that","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"44c7bd49f2c5475cb10ebfded06e5b727034a4f5","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                raise TypeError()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        req \u003d self._make_request()"},{"line_number":122,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":123,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":124,"context_line":"        # This is a validationerror type"},{"line_number":125,"context_line":"        self.assertEquals(resp.status_int, exception.ValidationError.code)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B0O4%3D","line":122,"updated":"2013-02-18 17:49:04.000000000","message":"same","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"44c7bd49f2c5475cb10ebfded06e5b727034a4f5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        req \u003d self._make_request()"},{"line_number":133,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":134,"context_line":"        # TODO(chmou): Should exception.Error raise a 500? (it doesn\u0027t"},{"line_number":135,"context_line":"        # bring back anything for now)."},{"line_number":136,"context_line":"        # self.assertEquals(resp.status_int, exception.Error.code)"},{"line_number":137,"context_line":"        self.assertTrue(\"EXCEPTIONERROR\" in resp.body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B0PY%3D","line":135,"updated":"2013-02-18 17:49:04.000000000","message":"UnexpectedError is our 500, I\u0027d suggest raising that here instead. I\u0027ve considered merging that class and Error, or renaming Error to BaseError or something to indicate that it shouldn\u0027t be raised directly","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"fe890caa431458647fbe64db7384262dd1ae050e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        req \u003d self._make_request()"},{"line_number":133,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":134,"context_line":"        # TODO(chmou): Should exception.Error raise a 500? (it doesn\u0027t"},{"line_number":135,"context_line":"        # bring back anything for now)."},{"line_number":136,"context_line":"        # self.assertEquals(resp.status_int, exception.Error.code)"},{"line_number":137,"context_line":"        self.assertTrue(\"EXCEPTIONERROR\" in resp.body)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Bz2w%3D","line":135,"in_reply_to":"AAAAM3%2F%2B0PY%3D","updated":"2013-02-18 19:57:51.000000000","message":"Great that\u0027s exactly what I was looking for. thanks.","commit_id":"6125fde2de7ab90229a53241de88f9fac58fcaa6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aca5ce954dad1777d9c693513f5da5e34fccf5f8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            def index(self, context):"},{"line_number":51,"context_line":"                return context[\u0027query_string\u0027]"},{"line_number":52,"context_line":"        req \u003d self._make_request(url\u003d\u0027/?1\u003d2\u0027)"},{"line_number":53,"context_line":"        resp \u003d req.get_response(FakeApp())"},{"line_number":54,"context_line":"        self.assertEqual(jsonutils.loads(resp.body), {\u00271\u0027: \u00272\u0027})"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_render_response(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BxpY%3D","line":53,"updated":"2013-02-19 15:08:43.000000000","message":"should this use self.app?","commit_id":"24824cca03f7963b8db88c5b2a92f5a194d6673e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aca5ce954dad1777d9c693513f5da5e34fccf5f8","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                return req"},{"line_number":92,"context_line":"        req \u003d self._make_request()"},{"line_number":93,"context_line":"        resp \u003d FakeMiddleware(None)(req)"},{"line_number":94,"context_line":"        self.assertTrue(\u0027fake_request\u0027 in resp.environ)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_middleware_response(self):"},{"line_number":97,"context_line":"        class FakeMiddleware(wsgi.Middleware):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bxnc%3D","line":94,"updated":"2013-02-19 15:08:43.000000000","message":"suggest use assertIn","commit_id":"24824cca03f7963b8db88c5b2a92f5a194d6673e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aca5ce954dad1777d9c693513f5da5e34fccf5f8","unresolved":false,"context_lines":[{"line_number":101,"context_line":"                return response"},{"line_number":102,"context_line":"        req \u003d self._make_request()"},{"line_number":103,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":104,"context_line":"        self.assertTrue(\u0027fake_response\u0027 in resp.environ)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_middleware_bad_request(self):"},{"line_number":107,"context_line":"        class FakeMiddleware(wsgi.Middleware):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BxnY%3D","line":104,"updated":"2013-02-19 15:08:43.000000000","message":"suggest use assertIn","commit_id":"24824cca03f7963b8db88c5b2a92f5a194d6673e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"aca5ce954dad1777d9c693513f5da5e34fccf5f8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        req \u003d self._make_request()"},{"line_number":133,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":134,"context_line":"        self.assertEquals(resp.status_int, exception.UnexpectedError.code)"},{"line_number":135,"context_line":"        self.assertTrue(\"EXCEPTIONERROR\" in resp.body)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BxnU%3D","line":135,"updated":"2013-02-19 15:08:43.000000000","message":"suggest use assertIn","commit_id":"24824cca03f7963b8db88c5b2a92f5a194d6673e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"865db5402cff88aee8dc0daf3ab43e8bb195ac36","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                raise TypeError()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        req \u003d self._make_request()"},{"line_number":122,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":123,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":124,"context_line":"        # This is a validationerror type"},{"line_number":125,"context_line":"        self.assertEquals(resp.status_int, exception.ValidationError.code)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2Bq44%3D","line":122,"updated":"2013-02-22 01:25:36.000000000","message":"IP\u0027s?","commit_id":"36078ede06c736bee0431307b6df28470c1e6baf"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"8ee324b19ad4d804230d5677c2f2a7554c5c8c9a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                raise TypeError()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        req \u003d self._make_request()"},{"line_number":122,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027http://www.test.com\u0027"},{"line_number":123,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":124,"context_line":"        # This is a validationerror type"},{"line_number":125,"context_line":"        self.assertEquals(resp.status_int, exception.ValidationError.code)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2BqXI%3D","line":122,"in_reply_to":"AAAAM3%2F%2Bq44%3D","updated":"2013-02-22 12:48:07.000000000","message":"there is something iffy with this review this got reverted to a earlier version of this patch. I wonder if git-review -d got funny wiith Alvaro upload.","commit_id":"36078ede06c736bee0431307b6df28470c1e6baf"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc0c7b13252baa467c4040f04a180a0240f62b1e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from keystone.common import wsgi"},{"line_number":20,"context_line":"from keystone.openstack.common import jsonutils"},{"line_number":21,"context_line":"from keystone import test"},{"line_number":22,"context_line":"from keystone import exception"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FakeApp(wsgi.Application):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAN3%2F%2F%2FDI%3D","line":22,"updated":"2013-03-04 17:27:04.000000000","message":"(nit) imports should be in alphabetical order.","commit_id":"0b4ee31f0f71d62c4955847ec775dc0541e5a2c6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc0c7b13252baa467c4040f04a180a0240f62b1e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        req \u003d self._make_request()"},{"line_number":122,"context_line":"        req.environ[\u0027REMOTE_ADDR\u0027] \u003d \u0027127.0.0.1\u0027"},{"line_number":123,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":124,"context_line":"        # This is a validationerror type"},{"line_number":125,"context_line":"        self.assertEquals(resp.status_int, exception.ValidationError.code)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def test_middleware_exception_error(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAN3%2F%2F%2FB8%3D","line":124,"updated":"2013-03-04 17:27:04.000000000","message":"(nit) remove this comment.","commit_id":"0b4ee31f0f71d62c4955847ec775dc0541e5a2c6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc0c7b13252baa467c4040f04a180a0240f62b1e","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    def test_middleware_exception_error(self):"},{"line_number":128,"context_line":"        class FakeMiddleware(wsgi.Middleware):"},{"line_number":129,"context_line":"            def process_response(self, request, response):"},{"line_number":130,"context_line":"                raise exception.UnexpectedError(\"EXCEPTIONERROR\")"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        req \u003d self._make_request()"},{"line_number":133,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAN3%2F%2F%2FB4%3D","line":130,"updated":"2013-03-04 17:27:04.000000000","message":"(nit) use \u0027 rather than \"","commit_id":"0b4ee31f0f71d62c4955847ec775dc0541e5a2c6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cc0c7b13252baa467c4040f04a180a0240f62b1e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        req \u003d self._make_request()"},{"line_number":133,"context_line":"        resp \u003d FakeMiddleware(self.app)(req)"},{"line_number":134,"context_line":"        self.assertEquals(resp.status_int, exception.UnexpectedError.code)"},{"line_number":135,"context_line":"        self.assertIn(\"EXCEPTIONERROR\", resp.body)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAN3%2F%2F%2FB0%3D","line":135,"updated":"2013-03-04 17:27:04.000000000","message":"(nit) use \u0027 rather than \"","commit_id":"0b4ee31f0f71d62c4955847ec775dc0541e5a2c6"}]}
