Workaround to fix Heat stack deletion bug in Shade
[yardstick.git] / yardstick / tests / unit / orchestrator / test_heat.py
index 9164197..e0a3538 100644 (file)
@@ -59,7 +59,7 @@ class HeatStackTestCase(unittest.TestCase):
         with mock.patch.object(tempfile._TemporaryFileWrapper, '__enter__',
                                return_value=mock_tfile):
             self.heatstack.create(template, heat_parameters, True, 100)
-            mock_tfile.write.assert_called_once_with(jsonutils.dumps(template))
+            mock_tfile.write.assert_called_once_with(jsonutils.dump_as_bytes(template))
             mock_tfile.close.assert_called_once()
 
         self.mock_stack_create.assert_called_once_with(
@@ -89,6 +89,18 @@ class HeatStackTestCase(unittest.TestCase):
         self.assertFalse(heat._DEPLOYED_STACKS)
         self.mock_stack_delete.assert_called_once_with(id, wait=True)
 
+    def test_delete_bug_in_shade(self):
+        id = uuidutils.generate_uuid()
+        self.heatstack._stack = FakeStack(
+            outputs=mock.Mock(), status=mock.Mock(), id=id)
+        heat._DEPLOYED_STACKS[id] = self.heatstack._stack
+        self.mock_stack_delete.side_effect = TypeError()
+
+        ret = self.heatstack.delete(wait=True)
+        self.assertTrue(ret)
+        self.assertFalse(heat._DEPLOYED_STACKS)
+        self.mock_stack_delete.assert_called_once_with(id, wait=True)
+
 
 class HeatTemplateTestCase(unittest.TestCase):