)]}'
{"climate/api/v2/controllers/__init__.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b8142c2aa4598f6e95d3d69c68cdc43dacc6290c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class V2Controller(rest.RestController):"},{"line_number":41,"context_line":"    \"\"\"Version 2 API controller root.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    versions \u003d [{\"id\": \"v2.0\", \"status\": \"CURRENT\"}]"},{"line_number":44,"context_line":"    _routes \u003d {}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _log_missing_plugins(self, names):"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_cda64253","line":43,"updated":"2014-07-02 22:59:20.000000000","message":"why are you not providing the links field here as for V1 ?","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"2143ba6989e6c892a8d9d7b23664bb5a59cae68f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class V2Controller(rest.RestController):"},{"line_number":41,"context_line":"    \"\"\"Version 2 API controller root.\"\"\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    versions \u003d [{\"id\": \"v2.0\", \"status\": \"CURRENT\"}]"},{"line_number":44,"context_line":"    _routes \u003d {}"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _log_missing_plugins(self, names):"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_d48a221a","line":43,"in_reply_to":"baada198_cda64253","updated":"2014-07-03 19:10:44.000000000","message":"Because that information is provided by each controller (climate/api/v1/app.py:61)","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"}],"climate/tests/__init__.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b8142c2aa4598f6e95d3d69c68cdc43dacc6290c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        self.addCleanup(db_api.drop_db)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class TestCase(testscenarios.WithScenarios, test.BaseTestCase):"},{"line_number":57,"context_line":"    \"\"\"Test case base class for all unit tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    Due to the slowness of DB access, this class is not supporting DB tests."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_0d303a55","line":56,"updated":"2014-07-02 22:59:20.000000000","message":"can\u0027t see why this change is necessary here","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"278a723ac0485bfdf7a1d64f38ecef5e5226cfe1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        self.addCleanup(db_api.drop_db)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class TestCase(testscenarios.WithScenarios, test.BaseTestCase):"},{"line_number":57,"context_line":"    \"\"\"Test case base class for all unit tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    Due to the slowness of DB access, this class is not supporting DB tests."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_fa1f176a","line":56,"in_reply_to":"baada198_0d303a55","updated":"2014-07-03 16:33:33.000000000","message":"agree with Sylvain. It should be moved to a separate change.","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"2143ba6989e6c892a8d9d7b23664bb5a59cae68f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        self.addCleanup(db_api.drop_db)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class TestCase(testscenarios.WithScenarios, test.BaseTestCase):"},{"line_number":57,"context_line":"    \"\"\"Test case base class for all unit tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    Due to the slowness of DB access, this class is not supporting DB tests."}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_34027e6f","line":56,"in_reply_to":"baada198_fa1f176a","updated":"2014-07-03 19:10:44.000000000","message":"This is needed in order to use testscenarios. I use this in the tests that I wrote for this patch. I could provide this in a separate patch, but for me is a very small change.","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"}],"climate/tests/api/test_version_selector.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b8142c2aa4598f6e95d3d69c68cdc43dacc6290c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from climate import tests"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FakeWSGIApp():"},{"line_number":26,"context_line":"    def __init__(self, id, status_code\u003d\"300 Multiple Choices\"):"},{"line_number":27,"context_line":"        self.id_version \u003d id"},{"line_number":28,"context_line":"        self.status_code \u003d status_code"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_ed1306b6","line":25,"updated":"2014-07-02 22:59:20.000000000","message":"please create a new style class here","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"2143ba6989e6c892a8d9d7b23664bb5a59cae68f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from climate import tests"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FakeWSGIApp():"},{"line_number":26,"context_line":"    def __init__(self, id, status_code\u003d\"300 Multiple Choices\"):"},{"line_number":27,"context_line":"        self.id_version \u003d id"},{"line_number":28,"context_line":"        self.status_code \u003d status_code"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_743eb629","line":25,"in_reply_to":"baada198_7d94e142","updated":"2014-07-03 19:10:44.000000000","message":"Done","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"278a723ac0485bfdf7a1d64f38ecef5e5226cfe1","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from climate import tests"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class FakeWSGIApp():"},{"line_number":26,"context_line":"    def __init__(self, id, status_code\u003d\"300 Multiple Choices\"):"},{"line_number":27,"context_line":"        self.id_version \u003d id"},{"line_number":28,"context_line":"        self.status_code \u003d status_code"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_7d94e142","line":25,"in_reply_to":"baada198_ed1306b6","updated":"2014-07-03 16:33:33.000000000","message":"+1. we should use only new style classes because old style is deleted from 3.x","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b8142c2aa4598f6e95d3d69c68cdc43dacc6290c","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def setUp(self):"},{"line_number":49,"context_line":"        super(TestVersionDiscovery, self).setUp()"},{"line_number":50,"context_line":"        self.start_response \u003d mock.Mock()"},{"line_number":51,"context_line":"        self.v1_app \u003d v1_app"},{"line_number":52,"context_line":"        self.v2_app \u003d v2_app"},{"line_number":53,"context_line":"        self.v1_make_app \u003d self.patch(self.v1_app, \u0027make_app\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_8d69aa27","line":50,"updated":"2014-07-02 22:59:20.000000000","message":"I would prefer that you self.patch() the object, instead of monkeypatching it","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"278a723ac0485bfdf7a1d64f38ecef5e5226cfe1","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def setUp(self):"},{"line_number":49,"context_line":"        super(TestVersionDiscovery, self).setUp()"},{"line_number":50,"context_line":"        self.start_response \u003d mock.Mock()"},{"line_number":51,"context_line":"        self.v1_app \u003d v1_app"},{"line_number":52,"context_line":"        self.v2_app \u003d v2_app"},{"line_number":53,"context_line":"        self.v1_make_app \u003d self.patch(self.v1_app, \u0027make_app\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_bdd679ef","line":50,"in_reply_to":"baada198_8d69aa27","updated":"2014-07-03 16:33:33.000000000","message":"+1. you can use mock.Mock() only if you need to make fake object with architecture which hard to reproduce.","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"2143ba6989e6c892a8d9d7b23664bb5a59cae68f","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def setUp(self):"},{"line_number":49,"context_line":"        super(TestVersionDiscovery, self).setUp()"},{"line_number":50,"context_line":"        self.start_response \u003d mock.Mock()"},{"line_number":51,"context_line":"        self.v1_app \u003d v1_app"},{"line_number":52,"context_line":"        self.v2_app \u003d v2_app"},{"line_number":53,"context_line":"        self.v1_make_app \u003d self.patch(self.v1_app, \u0027make_app\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_54dd32df","line":50,"in_reply_to":"baada198_bdd679ef","updated":"2014-07-03 19:10:44.000000000","message":"Done","commit_id":"fc54fb0c7816fe394baac8f4555986bc860c71b2"}]}
