)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"e74dbb642f4b7cfc612aad3a5e54f8860ea9688f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Unit test coverage enhancements"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fixes: 1441792"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ic32a2e5a1cfe0ae686816c0d33ea37584ef59d90"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aaa499b_c807ee1a","line":10,"updated":"2015-04-15 10:13:06.000000000","message":"This needs to be of the format: \n\nCloses-Bug: #1441792","commit_id":"5ff589b17875ade7562e0d424e88b30e8a164bb4"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"7628a75aa643d86527c9477f2400f4d76cd1b8c4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Unit test coverage enhancements"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- Extracts some vertica cluster tests to serve as general cluster tests."},{"line_number":10,"context_line":"- Adds some taskmanager API tests."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1441792"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3ab451fb_97f28c99","line":9,"updated":"2015-04-17 09:17:09.000000000","message":"I think we can be specific, it is not \"some\" tests it is \"delete cluster\" tests which are moved.","commit_id":"b2ca19c9b3c7d05f5dd847c1b8e68453d4426d4e"}],"trove/tests/unittests/cluster/test_cluster_models.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"e74dbb642f4b7cfc612aad3a5e54f8860ea9688f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.datastore_version \u003d self.dv"},{"line_number":49,"context_line":"        self.cluster \u003d models.Cluster(self.context, self.db_info,"},{"line_number":50,"context_line":"                                                  self.datastore,"},{"line_number":51,"context_line":"                                                  self.datastore_version)"},{"line_number":52,"context_line":"        self.instances \u003d [{\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":53,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":54,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027}]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_83754799","line":51,"updated":"2015-04-15 10:13:06.000000000","message":"pep8 tests failing for the above 2 lines - its over-indented. I believe it needs to align with self.context in the line above.","commit_id":"5ff589b17875ade7562e0d424e88b30e8a164bb4"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"2b39c4d8dd7c2a0092a45f2d77fa08217d309d27","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        self.datastore_version \u003d self.dv"},{"line_number":49,"context_line":"        self.cluster \u003d models.Cluster(self.context, self.db_info,"},{"line_number":50,"context_line":"                                                  self.datastore,"},{"line_number":51,"context_line":"                                                  self.datastore_version)"},{"line_number":52,"context_line":"        self.instances \u003d [{\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":53,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027},"},{"line_number":54,"context_line":"                          {\u0027volume_size\u0027: 1, \u0027flavor_id\u0027: \u00271234\u0027}]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_4e6bd8f1","line":51,"in_reply_to":"7aaa499b_83754799","updated":"2015-04-15 16:36:59.000000000","message":"Done","commit_id":"5ff589b17875ade7562e0d424e88b30e8a164bb4"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"32f55db8f202de7f1eb9c40ad60276aef0bf91dd","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class TestClusterModel(TestCase):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestClusterModel, self).setUp()"},{"line_number":34,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":35,"context_line":"        self.cluster_id \u003d str(uuid.uuid4())"},{"line_number":36,"context_line":"        self.cluster_name \u003d \"Cluster\" + self.cluster_id"},{"line_number":37,"context_line":"        self.tenant_id \u003d \"23423432\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_6ca06391","line":34,"updated":"2015-04-15 20:59:04.000000000","message":"Mocking a shared \u0027static\u0027 resource while never unmocking it.\nMake sure to unmock it on tear down.","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"f97271e5e427d172245dfede6b847c895ec0575c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class TestClusterModel(TestCase):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestClusterModel, self).setUp()"},{"line_number":34,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":35,"context_line":"        self.cluster_id \u003d str(uuid.uuid4())"},{"line_number":36,"context_line":"        self.cluster_name \u003d \"Cluster\" + self.cluster_id"},{"line_number":37,"context_line":"        self.tenant_id \u003d \"23423432\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_72da7e7a","line":34,"in_reply_to":"5aa745d1_37ef48b2","updated":"2015-04-15 22:17:59.000000000","message":"When it comes to other tests. Fix only those that are in the scope in your patch set here.\nThat being said the other tests should be fixed too, but that would be done in a dedicated patch.","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"8b4d5f82784bbf61ecdc2bcb25c127dba7bc1025","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class TestClusterModel(TestCase):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestClusterModel, self).setUp()"},{"line_number":34,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":35,"context_line":"        self.cluster_id \u003d str(uuid.uuid4())"},{"line_number":36,"context_line":"        self.cluster_name \u003d \"Cluster\" + self.cluster_id"},{"line_number":37,"context_line":"        self.tenant_id \u003d \"23423432\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_37ef48b2","line":34,"in_reply_to":"5aa745d1_6ca06391","updated":"2015-04-15 21:49:22.000000000","message":"Good catch. Should we ignore, for now, the various other tests that do the same thing?","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"e35012dd1a20f138d8961071ed4177c0fb58cfa6","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class TestClusterModel(TestCase):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestClusterModel, self).setUp()"},{"line_number":34,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":35,"context_line":"        self.cluster_id \u003d str(uuid.uuid4())"},{"line_number":36,"context_line":"        self.cluster_name \u003d \"Cluster\" + self.cluster_id"},{"line_number":37,"context_line":"        self.tenant_id \u003d \"23423432\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_d78264c8","line":34,"in_reply_to":"5aa745d1_6ca06391","updated":"2015-04-15 21:53:36.000000000","message":"Would you save the original value - run the test - then reset it?","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"238bd0fce782f84b339a79ecd094073b15d2293d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class TestClusterModel(TestCase):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestClusterModel, self).setUp()"},{"line_number":34,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":35,"context_line":"        self.cluster_id \u003d str(uuid.uuid4())"},{"line_number":36,"context_line":"        self.cluster_name \u003d \"Cluster\" + self.cluster_id"},{"line_number":37,"context_line":"        self.tenant_id \u003d \"23423432\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_1279fafc","line":34,"in_reply_to":"5aa745d1_72da7e7a","updated":"2015-04-15 22:39:57.000000000","message":"Done","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"7226665981e6a4cbf3953fb82b968c50cc3bc6ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":"class TestClusterModel(TestCase):"},{"line_number":32,"context_line":"    def setUp(self):"},{"line_number":33,"context_line":"        super(TestClusterModel, self).setUp()"},{"line_number":34,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":35,"context_line":"        self.cluster_id \u003d str(uuid.uuid4())"},{"line_number":36,"context_line":"        self.cluster_name \u003d \"Cluster\" + self.cluster_id"},{"line_number":37,"context_line":"        self.tenant_id \u003d \"23423432\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_572f74a1","line":34,"in_reply_to":"5aa745d1_d78264c8","updated":"2015-04-15 22:05:32.000000000","message":"Yes. Generally there are two options. Either do it using \u0027context manager\u0027/\u0027decorator\u0027 in each test case - that reduces the scope of the mock and is great for mocks that are used only locally.\nOr you can save the current value off in setUp and restore it tearDown. That should give you fresh mocks before every test case and restore it afterwards.","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"}],"trove/tests/unittests/cluster/test_vertica_cluster.py":[{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"7628a75aa643d86527c9477f2400f4d76cd1b8c4","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        mock_task_api.create_cluster.assert_called"},{"line_number":167,"context_line":"        self.assertEqual(3, mock_ins_create.call_count)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_delete_bad_task_status(self):"},{"line_number":170,"context_line":"        self.cluster.db_info.task_status \u003d ClusterTasks.BUILDING_INITIAL"},{"line_number":171,"context_line":"        self.assertRaises(exception.UnprocessableEntity,"},{"line_number":172,"context_line":"                          self.cluster.delete)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ab451fb_f7b430d2","line":169,"updated":"2015-04-17 09:17:09.000000000","message":"Why not move this one also to general tests as it also relates to delete and is related to general cluster code.","commit_id":"b2ca19c9b3c7d05f5dd847c1b8e68453d4426d4e"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"136dc8f745df4a1193999151dd053c6d59c47e87","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        mock_task_api.create_cluster.assert_called"},{"line_number":167,"context_line":"        self.assertEqual(3, mock_ins_create.call_count)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_delete_bad_task_status(self):"},{"line_number":170,"context_line":"        self.cluster.db_info.task_status \u003d ClusterTasks.BUILDING_INITIAL"},{"line_number":171,"context_line":"        self.assertRaises(exception.UnprocessableEntity,"},{"line_number":172,"context_line":"                          self.cluster.delete)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ab451fb_c61a9a6e","line":169,"in_reply_to":"3ab451fb_f7b430d2","updated":"2015-04-17 15:10:36.000000000","message":"I agree, it is unclear why this one should stay here.","commit_id":"b2ca19c9b3c7d05f5dd847c1b8e68453d4426d4e"}],"trove/tests/unittests/taskmanager/test_api.py":[{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"e74dbb642f4b7cfc612aad3a5e54f8860ea9688f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertIs(dictionary, obj.__dict__)"},{"line_number":46,"context_line":"        self.assertFalse(hasattr(obj, \u0027manager\u0027))"},{"line_number":47,"context_line":"        self.assertRaises(ValueError, lambda: api._transform_obj(\"foo\"))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_43217f9e","line":48,"updated":"2015-04-15 10:13:06.000000000","message":"pep8 tests is complaining about the blank lines here.","commit_id":"5ff589b17875ade7562e0d424e88b30e8a164bb4"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"2b39c4d8dd7c2a0092a45f2d77fa08217d309d27","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.assertIs(dictionary, obj.__dict__)"},{"line_number":46,"context_line":"        self.assertFalse(hasattr(obj, \u0027manager\u0027))"},{"line_number":47,"context_line":"        self.assertRaises(ValueError, lambda: api._transform_obj(\"foo\"))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_0e7a70bd","line":48,"in_reply_to":"7aaa499b_43217f9e","updated":"2015-04-15 16:36:59.000000000","message":"Done","commit_id":"5ff589b17875ade7562e0d424e88b30e8a164bb4"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"32f55db8f202de7f1eb9c40ad60276aef0bf91dd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestAPI(TestCase):"},{"line_number":25,"context_line":"    def test_load_api(self):"},{"line_number":26,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":27,"context_line":"        context \u003d Mock()"},{"line_number":28,"context_line":"        manager \u003d \u0027mongodb\u0027"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_acb42bd1","line":26,"updated":"2015-04-15 20:59:04.000000000","message":"Again, mocking a shared \u0027static\u0027 resource while never unmocking it. This should be managed by a context manager or decorator - i.e. use \u0027with patch...\u0027 or \u0027@patch...\u0027","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"238bd0fce782f84b339a79ecd094073b15d2293d","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class TestAPI(TestCase):"},{"line_number":25,"context_line":"    def test_load_api(self):"},{"line_number":26,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":27,"context_line":"        context \u003d Mock()"},{"line_number":28,"context_line":"        manager \u003d \u0027mongodb\u0027"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_d28272c8","line":26,"in_reply_to":"5aa745d1_acb42bd1","updated":"2015-04-15 22:39:57.000000000","message":"Done","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"32f55db8f202de7f1eb9c40ad60276aef0bf91dd","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        obj \u003d Object()"},{"line_number":39,"context_line":"        obj.manager \u003d \"test\""},{"line_number":40,"context_line":"        obj.foo \u003d \"bar\""},{"line_number":41,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":42,"context_line":"        api \u003d task_api.API(object)"},{"line_number":43,"context_line":"        dictionary \u003d api._transform_obj(obj)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_cc0bf77c","line":41,"updated":"2015-04-15 20:59:04.000000000","message":"same","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"},{"author":{"_account_id":1976,"name":"Jonathan Halterman","email":"jhalterman@hp.com","username":"jhalterman"},"change_message_id":"238bd0fce782f84b339a79ecd094073b15d2293d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        obj \u003d Object()"},{"line_number":39,"context_line":"        obj.manager \u003d \"test\""},{"line_number":40,"context_line":"        obj.foo \u003d \"bar\""},{"line_number":41,"context_line":"        task_api.API.get_client \u003d Mock()"},{"line_number":42,"context_line":"        api \u003d task_api.API(object)"},{"line_number":43,"context_line":"        dictionary \u003d api._transform_obj(obj)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aa745d1_f27d6ee8","line":41,"in_reply_to":"5aa745d1_cc0bf77c","updated":"2015-04-15 22:39:57.000000000","message":"Done","commit_id":"27d828bfb0aa41727c7ad8b449a77a4edd153521"}]}
