)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"dac52c9fcd0303a37008614453c87b3beb2821bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Pablo Andres Fuente \u003cpablo.a.fuente@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-19 14:18:44 -0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Deleting a stack with a deleted nested stack fails"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When deleting a stack that has a nested stack previously deleted, the"},{"line_number":10,"context_line":"process fails because the nested stack cannot be retrieved from the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2F7uc%3D","line":7,"updated":"2014-01-06 16:06:32.000000000","message":"Commit message headlines are for describing changes. Bug tracker headlines are for describing bugs.\n\nPlease read https://wiki.openstack.org/wiki/GitCommitMessages#Information_in_commit_messages and then change this headline to something that describes the change. e.g.:\n\n\"Fix deletion of already-deleted nested stack resource\", or\n\"Avoid error on double-delete of nested stack\", \u0026c.","commit_id":"0601dcaf3142c1e0e7a469abbcf50dac028d9aba"}],"heat/tests/test_nested_stack.py":[{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"9e3ce97b837624b03f9cc8f9199ec458a2b00b2d","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        stack \u003d parser.Stack.load(utils.dummy_context("},{"line_number":496,"context_line":"            \u0027test_username\u0027, \u0027aaaa\u0027, \u0027password\u0027), stack.id)"},{"line_number":497,"context_line":"        rsrc \u003d stack[\u0027the_nested\u0027]"},{"line_number":498,"context_line":"        scheduler.TaskRunner(rsrc.delete)()"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        self.m.VerifyAll()"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89oQ%3D","line":498,"updated":"2013-12-18 11:00:18.000000000","message":"This is not testing what you imply in the test name, it\u0027s deleting only the nested stack resource, not the parent stack.  \n\nPossibly you want two tests, one which tests what you\u0027re doing here (calling Resource.delete()) then check the resource status is DELETE, COMPLETE, and another test which checks that doing stack.delete() works without errors, this destroys the resource (removes from DB) so you won\u0027t be able to check the resource state in that case.","commit_id":"5e0cb240c44de3ff95718018036b349b3a441eb6"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"6f542feb4e25cd8528a7166269f69ee5e652ab26","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        stack \u003d parser.Stack.load(utils.dummy_context("},{"line_number":496,"context_line":"            \u0027test_username\u0027, \u0027aaaa\u0027, \u0027password\u0027), stack.id)"},{"line_number":497,"context_line":"        rsrc \u003d stack[\u0027the_nested\u0027]"},{"line_number":498,"context_line":"        scheduler.TaskRunner(rsrc.delete)()"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        self.m.VerifyAll()"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F882c%3D","line":498,"in_reply_to":"AAAATn%2F89oQ%3D","updated":"2013-12-18 14:25:27.000000000","message":"Done","commit_id":"5e0cb240c44de3ff95718018036b349b3a441eb6"},{"author":{"_account_id":7230,"name":"Vijendar Komalla","email":"vijendar.komalla@rackspace.com","username":"vijendar"},"change_message_id":"6de3c9f9cf357a845aec195b9b62a99940bcd880","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        stack \u003d self.create_stack(self.test_template)"},{"line_number":489,"context_line":"        rsrc \u003d stack[\u0027the_nested\u0027]"},{"line_number":490,"context_line":"        scheduler.TaskRunner(rsrc.delete)()"},{"line_number":491,"context_line":"        self.assertEqual(rsrc.state, (stack.DELETE, stack.COMPLETE))"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        nested_stack \u003d parser.Stack.load(utils.dummy_context("},{"line_number":494,"context_line":"            \u0027test_username\u0027, \u0027aaaa\u0027, \u0027password\u0027), rsrc.resource_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F812M%3D","line":491,"updated":"2013-12-19 16:59:05.000000000","message":"small nit. change the order here and also other places below?  correct usage is assertEqual(expected, actual)","commit_id":"e9ddbf0c505bd4f142d2abad7ce73a2ecf3f493c"}],"heat/tests/test_stack_resource.py":[{"author":{"_account_id":6917,"name":"Bartosz Górski","email":"bartosz@codilime.com","username":"bartosz-gorski"},"change_message_id":"709cd52bd9b183c065d797179abfc8b7a19dc0fa","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.m.ReplayAll()"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        self.parent_resource.delete_nested()"},{"line_number":286,"context_line":"        self.assertRaises(mox.ExpectedMethodCallsError, self.m.VerifyAll)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def test_get_output_ok(self):"},{"line_number":289,"context_line":"        nested \u003d self.m.CreateMockAnything()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89x4%3D","line":286,"updated":"2013-12-18 10:23:33.000000000","message":"This looks wired and wrong. I think we should mock all needed stuff in our code to avoid testing exceptions raised by the mox.","commit_id":"5e0cb240c44de3ff95718018036b349b3a441eb6"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"6f542feb4e25cd8528a7166269f69ee5e652ab26","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.m.ReplayAll()"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        self.parent_resource.delete_nested()"},{"line_number":286,"context_line":"        self.assertRaises(mox.ExpectedMethodCallsError, self.m.VerifyAll)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def test_get_output_ok(self):"},{"line_number":289,"context_line":"        nested \u003d self.m.CreateMockAnything()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89A4%3D","line":286,"in_reply_to":"AAAATn%2F89q0%3D","updated":"2013-12-18 14:25:27.000000000","message":"I could change the assertion to test that delete_nested() returns None, which implies that the delete was not scheduled. I\u0027ll upload a new patch.","commit_id":"5e0cb240c44de3ff95718018036b349b3a441eb6"},{"author":{"_account_id":4328,"name":"Steven Hardy","email":"steven.hardy@suse.com","username":"shardy"},"change_message_id":"9e3ce97b837624b03f9cc8f9199ec458a2b00b2d","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.m.ReplayAll()"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        self.parent_resource.delete_nested()"},{"line_number":286,"context_line":"        self.assertRaises(mox.ExpectedMethodCallsError, self.m.VerifyAll)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def test_get_output_ok(self):"},{"line_number":289,"context_line":"        nested \u003d self.m.CreateMockAnything()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F89q0%3D","line":286,"in_reply_to":"AAAATn%2F89x4%3D","updated":"2013-12-18 11:00:18.000000000","message":"+1 all you\u0027re doing here is asserting that the test doesn\u0027t work.","commit_id":"5e0cb240c44de3ff95718018036b349b3a441eb6"},{"author":{"_account_id":7135,"name":"Liang Chen","email":"liangchen.linux@gmail.com","username":"Liang"},"change_message_id":"d08118b2bf05123daf8becb163ea284999b00a49","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    def test_delete_nested_not_found_nested_stack(self):"},{"line_number":279,"context_line":"        self.m.StubOutWithMock(stack_resource.StackResource, \u0027nested\u0027)"},{"line_number":280,"context_line":"        stack_resource.StackResource.nested().AndRaise(exception.NotFound)"},{"line_number":281,"context_line":"        self.m.ReplayAll()"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.assertIsNone(self.parent_resource.delete_nested())"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F820Y%3D","line":280,"updated":"2013-12-19 14:40:03.000000000","message":"It doesn\u0027t quite make sense to mock the method that is being changed in the patch. Perhaps you want to mock parser.Stack.load ?","commit_id":"be80d66afd924f039c84e260e3af48171f7d7a04"}]}
