)]}'
{"trove/tests/unittests/cluster/test_vertica_cluster.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"cf26c14012a3d495d315a04c7e43104fa5c2aa7a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":59,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":60,"context_line":"        self.volume_support \u003d CONF.get(self.dv.manager).volume_support"},{"line_number":61,"context_line":"        self.remote_nova \u003d remote.create_nova_client"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def tearDown(self):"},{"line_number":64,"context_line":"        super(ClusterTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_9b971490","line":61,"updated":"2015-05-07 21:58:40.000000000","message":"I dont see self.volume_support or self.remote_nova being used anywhere. In fact, you are using the patch decorator to mock remote.create_nova_client. Am i missing something?","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"d8277c4c82dcba84e40bdd3a9fa0fa7e5e96a02c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.instances \u003d [{\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":60,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":61,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":62,"context_line":"        self.volume_support \u003d CONF.get(self.dv.manager).volume_support"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def tearDown(self):"},{"line_number":65,"context_line":"        super(ClusterTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a0c5dc1_8aac5436","line":62,"updated":"2015-05-13 18:05:05.000000000","message":"Prefer:\n\npatcher \u003d patch.object(cfg, \u0027CONF\u0027)\n\nself.config_mock \u003d patcher.start()\n\nThen you do not need to do anything on tearDown and the mock will clean itself up. \n\nThen you can mock out volume_support with self.config_mock to whatever you want in any tests.\n\nAlternatively you can @patch.object(cfg, \u0027CONF\u0027) on each test that needs a mocked out config.","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"b93637d0996ae4b3ca83a0478ff1b0adb8f8be63","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.instances \u003d [{\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":60,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":61,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":62,"context_line":"        self.volume_support \u003d CONF.get(self.dv.manager).volume_support"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def tearDown(self):"},{"line_number":65,"context_line":"        super(ClusterTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a0c5dc1_ed9f6a01","line":62,"in_reply_to":"9a0c5dc1_8aac5436","updated":"2015-05-13 18:39:08.000000000","message":"1. This is not something I updated in this patchset.\n\n2. If I mock it then it would be needed to put all the config values to be sent through mock which are used in those tests using the mocked config.","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"391b275ebd2dd9e484cbb2b8fcf0880a2899fbcc","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        self.instances \u003d [{\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":60,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":61,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":62,"context_line":"        self.volume_support \u003d CONF.get(self.dv.manager).volume_support"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def tearDown(self):"},{"line_number":65,"context_line":"        super(ClusterTest, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_710031ab","line":62,"in_reply_to":"9a0c5dc1_8aac5436","updated":"2015-05-14 14:43:27.000000000","message":"Done","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"cb9c1af9c98482ed6fcb4dd9ceadcff05011cf1a","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        instances \u003d [{\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":225,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":226,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":227,"context_line":"        CONF.get(self.dv.manager).volume_support \u003d False"},{"line_number":228,"context_line":"        (mock_client.return_value."},{"line_number":229,"context_line":"         flavors.get.return_value) \u003d FakeFlavor(\u00271234\u0027)"},{"line_number":230,"context_line":"        self.cluster.create(Mock(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a0c5dc1_0d2abe7e","line":227,"updated":"2015-05-13 18:07:56.000000000","message":"This should be a config mock instead of modifying the real CONF value.","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"391b275ebd2dd9e484cbb2b8fcf0880a2899fbcc","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        instances \u003d [{\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":225,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":226,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":227,"context_line":"        CONF.get(self.dv.manager).volume_support \u003d False"},{"line_number":228,"context_line":"        (mock_client.return_value."},{"line_number":229,"context_line":"         flavors.get.return_value) \u003d FakeFlavor(\u00271234\u0027)"},{"line_number":230,"context_line":"        self.cluster.create(Mock(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_512c154a","line":227,"in_reply_to":"9a0c5dc1_0d2abe7e","updated":"2015-05-14 14:43:27.000000000","message":"Done","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9441dea793b4108c88e7da5eb5e55563ba4af61b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                                             mock_client):"},{"line_number":99,"context_line":"        instances \u003d [{\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":100,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":101,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        (mock_client.return_value.flavors.get) \u003d Mock("},{"line_number":104,"context_line":"            side_effect\u003dnova_exceptions.NotFound("}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_a996e7ed","line":101,"updated":"2015-05-18 12:48:13.000000000","message":"instances \u003d [{\u0027flavor_id\u0027: \u00271234\u0027}]*3","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9441dea793b4108c88e7da5eb5e55563ba4af61b","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            @property"},{"line_number":235,"context_line":"            def ephemeral(self):"},{"line_number":236,"context_line":"                return 1"},{"line_number":237,"context_line":"        instances \u003d [{\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":238,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":239,"context_line":"                     {\u0027flavor_id\u0027: \u00271234\u0027}]"},{"line_number":240,"context_line":"        mock_conf.get \u003d Mock("}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_49bad36f","line":237,"updated":"2015-05-18 12:48:13.000000000","message":"instances \u003d [{\u0027flavor_id\u0027: \u00271234\u0027}]*3","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"}],"trove/tests/unittests/guestagent/test_api.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"0fba58f951ad3b25fac96afb6510af99bf3fc435","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":52,"context_line":"    def setUp(self):"},{"line_number":53,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":54,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9af37de9_6e3cd393","line":51,"range":{"start_line":51,"start_character":14,"end_line":51,"end_character":23},"updated":"2015-05-11 15:57:33.000000000","message":"Use the \u0027trove_testtools.TestCase\u0027","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"391b275ebd2dd9e484cbb2b8fcf0880a2899fbcc","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":52,"context_line":"    def setUp(self):"},{"line_number":53,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":54,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_9103adb8","line":51,"in_reply_to":"9af37de9_6e3cd393","updated":"2015-05-14 14:43:27.000000000","message":"Done separately, as it was fixes were out-of-scope of current patchset\n\nhttps://review.openstack.org/183067","commit_id":"f9d60d5d02bdc932a32c9730375571e8ad6a8049"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"cac27776e354d9a85d3ebd11d38ce2e8ed345566","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        self.call_context.cast \u003d mock.Mock()"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"class ApiStrategyTest(testtools.TestCase):"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    @mock.patch(\u0027trove.guestagent.api.API.__init__\u0027,"},{"line_number":462,"context_line":"                mock.Mock(return_value\u003dNone))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_adcde8b8","line":459,"updated":"2015-05-16 15:32:58.000000000","message":"You\u0027ve added new tests here - these at least should use the mock detector ...","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"b1505801ea8775d06d34643007d8935795797a1d","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        self.call_context.cast \u003d mock.Mock()"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"class ApiStrategyTest(testtools.TestCase):"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    @mock.patch(\u0027trove.guestagent.api.API.__init__\u0027,"},{"line_number":462,"context_line":"                mock.Mock(return_value\u003dNone))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_38c13581","line":459,"in_reply_to":"7a016987_2d4a18ad","updated":"2015-05-17 02:02:10.000000000","message":"Ah, see I didn\u0027t notice that since you did it a different way.","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"1684b524bb0f515f9d7c91fbf77a52c06d3d325c","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        self.call_context.cast \u003d mock.Mock()"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"class ApiStrategyTest(testtools.TestCase):"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    @mock.patch(\u0027trove.guestagent.api.API.__init__\u0027,"},{"line_number":462,"context_line":"                mock.Mock(return_value\u003dNone))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_b899a521","line":459,"in_reply_to":"7a016987_38c13581","updated":"2015-05-17 05:00:58.000000000","message":"Done","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"ccabfe4345c3e5d48a9040828968b1f2908a736f","unresolved":false,"context_lines":[{"line_number":456,"context_line":"        self.call_context.cast \u003d mock.Mock()"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"class ApiStrategyTest(testtools.TestCase):"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    @mock.patch(\u0027trove.guestagent.api.API.__init__\u0027,"},{"line_number":462,"context_line":"                mock.Mock(return_value\u003dNone))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_2d4a18ad","line":459,"in_reply_to":"7a016987_adcde8b8","updated":"2015-05-16 16:22:57.000000000","message":"already done in https://review.openstack.org/#/c/183067/2/trove/tests/unittests/guestagent/test_api.py","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"}],"trove/tests/unittests/guestagent/test_vertica_api.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"cf26c14012a3d495d315a04c7e43104fa5c2aa7a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_7be31806","line":1,"updated":"2015-05-07 21:58:40.000000000","message":"shouldnt this say 2015","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"f961894860a7859916a614890b2f7cb3e3e588ba","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":40,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_6f738381","line":37,"updated":"2015-05-06 23:51:28.000000000","message":"This will need update to \u0027trove_testtools.TestCase\u0027.","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"cf26c14012a3d495d315a04c7e43104fa5c2aa7a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":40,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_9bd274ff","line":37,"in_reply_to":"1aca2d91_683a5438","updated":"2015-05-07 21:58:40.000000000","message":"I kind of agree with Petr here. \n\nYou have probably mocked it correctly but anyone can come in tomorrow and update this file and add more test cases. I think thats where it helps to use trove_testtools.TestCase.\n\nMoreover from all the discussions we have been having around testing, it looks like the agreement was that new testcases would subclass from trove_testtools.TestCase.","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c8ad3233ad3d60faa0f537486bc8771b99ceedb9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":40,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_683a5438","line":37,"in_reply_to":"1aca2d91_6f738381","updated":"2015-05-07 07:08:19.000000000","message":"As is visible in test code, there are no leaked mocks and I have made consistent use of patch.object for mocking.\n\nSo there should not be need of using trove_testtools.TestCase","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5e0e1fcaaa1368827581480e714db28b22b55cc7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#Copyright [2015] Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":3,"context_line":"#you may not use this file except in compliance with the License."},{"line_number":4,"context_line":"#You may obtain a copy of the License at"},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_06c71646","line":2,"updated":"2015-05-08 14:44:40.000000000","message":"isn\u0027t it customary to have this license formatted with a blank line here and a space after #?","commit_id":"37713b89d354a3e61e4d8de0dcaf21f4b49865a7"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"dd33febfe9ab8e4b3de94ad9da6d8de5a2c7e9d8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#Copyright [2015] Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":3,"context_line":"#you may not use this file except in compliance with the License."},{"line_number":4,"context_line":"#You may obtain a copy of the License at"},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_93892129","line":2,"in_reply_to":"1aca2d91_06c71646","updated":"2015-05-08 15:59:11.000000000","message":"Done","commit_id":"37713b89d354a3e61e4d8de0dcaf21f4b49865a7"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"5e0e1fcaaa1368827581480e714db28b22b55cc7","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from trove.tests.unittests import trove_testtools as testtools"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"RPC_API_VERSION \u003d \u00271.0\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_46ce2eb5","line":24,"updated":"2015-05-08 14:44:40.000000000","message":"why do you have this and not just use trove.common.rpc.version.RPC_API_VERSION?","commit_id":"37713b89d354a3e61e4d8de0dcaf21f4b49865a7"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"dd33febfe9ab8e4b3de94ad9da6d8de5a2c7e9d8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from trove.tests.unittests import trove_testtools as testtools"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"RPC_API_VERSION \u003d \u00271.0\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aca2d91_b39bfd71","line":24,"in_reply_to":"1aca2d91_46ce2eb5","updated":"2015-05-08 15:59:11.000000000","message":"Done","commit_id":"37713b89d354a3e61e4d8de0dcaf21f4b49865a7"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"cac27776e354d9a85d3ebd11d38ce2e8ed345566","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"},{"line_number":21,"context_line":"from trove.common.strategies.cluster.experimental.vertica.guestagent import ("},{"line_number":22,"context_line":"    VerticaGuestAgentAPI)"},{"line_number":23,"context_line":"from trove.tests.unittests import trove_testtools as testtools"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_cdf38409","line":23,"updated":"2015-05-16 15:32:58.000000000","message":"can we make this:\n\n  from trove.tests.unittests import trove_testtools\n\nthat way it\u0027s consistent with all the other uses","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"1684b524bb0f515f9d7c91fbf77a52c06d3d325c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"},{"line_number":21,"context_line":"from trove.common.strategies.cluster.experimental.vertica.guestagent import ("},{"line_number":22,"context_line":"    VerticaGuestAgentAPI)"},{"line_number":23,"context_line":"from trove.tests.unittests import trove_testtools as testtools"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_98a02945","line":23,"in_reply_to":"7a016987_78ce8db5","updated":"2015-05-17 05:00:58.000000000","message":"Done","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"b1505801ea8775d06d34643007d8935795797a1d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"},{"line_number":21,"context_line":"from trove.common.strategies.cluster.experimental.vertica.guestagent import ("},{"line_number":22,"context_line":"    VerticaGuestAgentAPI)"},{"line_number":23,"context_line":"from trove.tests.unittests import trove_testtools as testtools"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_78ce8db5","line":23,"in_reply_to":"7a016987_ad5de87a","updated":"2015-05-17 02:02:10.000000000","message":"Not to how the code works, but then again, neither does following pep8.  It\u0027s about consistency and making the code easier to read and understand.","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"ccabfe4345c3e5d48a9040828968b1f2908a736f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"},{"line_number":21,"context_line":"from trove.common.strategies.cluster.experimental.vertica.guestagent import ("},{"line_number":22,"context_line":"    VerticaGuestAgentAPI)"},{"line_number":23,"context_line":"from trove.tests.unittests import trove_testtools as testtools"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_ad5de87a","line":23,"in_reply_to":"7a016987_cdf38409","updated":"2015-05-16 16:22:57.000000000","message":"does that make any difference","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"cac27776e354d9a85d3ebd11d38ce2e8ed345566","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":40,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_6dd93083","line":37,"updated":"2015-05-16 15:32:58.000000000","message":"That way you can inherit from:\n\n  trove_testtools.TestCase\n\nand you don\u0027t have to check the import to make sure the mock detector is being used","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"1684b524bb0f515f9d7c91fbf77a52c06d3d325c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        raise BaseException(\"Test Failed\")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class ApiTest(testtools.TestCase):"},{"line_number":38,"context_line":"    def setUp(self):"},{"line_number":39,"context_line":"        super(ApiTest, self).setUp()"},{"line_number":40,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_78a32d50","line":37,"in_reply_to":"7a016987_6dd93083","updated":"2015-05-17 05:00:58.000000000","message":"Done","commit_id":"71511c7e23315f120ad45d699f2f098eb568f550"},{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"4e2e4a7d099a707523dcb79ba40f80e3ff9dd62b","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from eventlet import Timeout"},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import trove.common.context as context"},{"line_number":19,"context_line":"from trove.common import exception"},{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_3d9bea67","line":17,"updated":"2015-05-22 17:31:25.000000000","message":"This import order will cause your other patch set Enabled H306 hacking rule https://review.openstack.org/#/c/181950/ to fail when this file is added.","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"1ea719339e423f2f77eb9d2ee97d688937ce6a08","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from eventlet import Timeout"},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import trove.common.context as context"},{"line_number":19,"context_line":"from trove.common import exception"},{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_dd761605","line":17,"in_reply_to":"7a016987_3d9bea67","updated":"2015-05-22 17:36:11.000000000","message":"Any how the H306 enabling patchset would land later than this one, so while updating the patch conflict, I can accommodate this one once this goes in.","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"90d6cd93c5e1803e9d276f83f1db56d24113a423","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from eventlet import Timeout"},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import trove.common.context as context"},{"line_number":19,"context_line":"from trove.common import exception"},{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_bddfdad4","line":17,"in_reply_to":"7a016987_3d9bea67","updated":"2015-05-22 17:38:48.000000000","message":"btw i cannot find the reason of failure, I see all the imports in correct order, can you please point me to wrongly ordered one, Thanks.","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"},{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"b32e96e0052c5352fed97522d30c59581bbdcccb","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from eventlet import Timeout"},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import trove.common.context as context"},{"line_number":19,"context_line":"from trove.common import exception"},{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_18995c7c","line":17,"in_reply_to":"7a016987_bddfdad4","updated":"2015-05-22 18:00:10.000000000","message":"Looks like this passes then, sounds good.","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9441dea793b4108c88e7da5eb5e55563ba4af61b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from trove.common.rpc.version import RPC_API_VERSION"},{"line_number":21,"context_line":"from trove.common.strategies.cluster.experimental.vertica.guestagent import ("},{"line_number":22,"context_line":"    VerticaGuestAgentAPI)"},{"line_number":23,"context_line":"from trove.tests.unittests import trove_testtools"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _mock_call(cmd, timeout, version\u003dNone, user\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a016987_49165356","line":23,"updated":"2015-05-18 12:48:13.000000000","message":"Please use appropriate import order.\n\n\"import ...\"\nthen\n\"from ...\"","commit_id":"b3cef41bf3f14e9e732dc71f5443e99dfcee9c21"}],"trove/tests/unittests/taskmanager/test_vertica_clusters.py":[{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"f961894860a7859916a614890b2f7cb3e3e588ba","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            mock_reset_task.assert_called()"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class VerticaTaskManagerAPITest(testtools.TestCase):"},{"line_number":176,"context_line":"    def setUp(self):"},{"line_number":177,"context_line":"        super(VerticaTaskManagerAPITest, self).setUp()"},{"line_number":178,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_ef0553c2","line":175,"updated":"2015-05-06 23:51:28.000000000","message":"This will need update to \u0027trove_testtools.TestCase\u0027.","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c8ad3233ad3d60faa0f537486bc8771b99ceedb9","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            mock_reset_task.assert_called()"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class VerticaTaskManagerAPITest(testtools.TestCase):"},{"line_number":176,"context_line":"    def setUp(self):"},{"line_number":177,"context_line":"        super(VerticaTaskManagerAPITest, self).setUp()"},{"line_number":178,"context_line":"        self.context \u003d context.TroveContext()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_48279812","line":175,"in_reply_to":"1aca2d91_ef0553c2","updated":"2015-05-07 07:08:19.000000000","message":"As is visible in test code, there are no leaked mocks and I have made consistent use of patch.object for mocking.\n\nSo there should not be need of using trove_testtools.TestCase","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"cf26c14012a3d495d315a04c7e43104fa5c2aa7a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        self.api.client.prepare \u003d Mock(return_value\u003dself.call_context)"},{"line_number":182,"context_line":"        self.call_context.cast \u003d Mock()"},{"line_number":183,"context_line":"        self.rpc_api_version \u003d \u00271.0\u0027"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @patch.object(rpc, \u0027get_client\u0027)"},{"line_number":186,"context_line":"    def test_task_manager_api__cast(self, mock_rpc_client):"},{"line_number":187,"context_line":"        self.api._cast(method_name\u003d\u0027test_method\u0027, version\u003dself.rpc_api_version)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_9bb15492","line":184,"updated":"2015-05-07 21:58:40.000000000","message":"Wondering why the rpc version has been defined as an instance variable whereas in other tests its been defined as a global variable?","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"f961894860a7859916a614890b2f7cb3e3e588ba","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        mock_rpc_client.assert_called()"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"class VerticaTaskManagerStrategyTest(testtools.TestCase):"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def test_task_manager_cluster_tasks_class(self):"},{"line_number":194,"context_line":"        vertica_strategy \u003d task_strategy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_cf0a97d2","line":191,"updated":"2015-05-06 23:51:28.000000000","message":"This will need update to \u0027trove_testtools.TestCase\u0027.","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"c8ad3233ad3d60faa0f537486bc8771b99ceedb9","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        mock_rpc_client.assert_called()"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"class VerticaTaskManagerStrategyTest(testtools.TestCase):"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def test_task_manager_cluster_tasks_class(self):"},{"line_number":194,"context_line":"        vertica_strategy \u003d task_strategy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_28245c0b","line":191,"in_reply_to":"1aca2d91_cf0a97d2","updated":"2015-05-07 07:08:19.000000000","message":"There are no mocks in this class","commit_id":"71bc2c5509c27a1f6b8ee096f363fb2ee1212a89"}]}
