Fix 1462
[osm/N2VC.git] / n2vc / tests / unit / test_libjuju.py
index 9ab6ddb..6b055e6 100644 (file)
@@ -66,8 +66,6 @@ class LibjujuTestCase(asynctest.TestCase):
             log=None,
             db={"get_one": []},
             n2vc=n2vc,
-            apt_mirror="192.168.0.100",
-            enable_os_upgrade=True,
         )
         logging.disable(logging.CRITICAL)
         loop.run_until_complete(self.libjuju.disconnect())
@@ -105,8 +103,6 @@ class LibjujuInitTestCase(asynctest.TestCase):
             log=None,
             db={"get_one": []},
             n2vc=self.n2vc,
-            apt_mirror="192.168.0.100",
-            enable_os_upgrade=True,
         )
         mock_update_endpoints.assert_called_once_with([self.endpoint])
         mock__get_api_endpoints_db.assert_called_once()
@@ -128,8 +124,6 @@ class LibjujuInitTestCase(asynctest.TestCase):
             log=None,
             db={"get_one": []},
             n2vc=self.n2vc,
-            apt_mirror="192.168.0.100",
-            enable_os_upgrade=True,
         )
         mock_update_endpoints.assert_not_called()
         mock__get_api_endpoints_db.assert_called_once()
@@ -151,8 +145,6 @@ class LibjujuInitTestCase(asynctest.TestCase):
             log=None,
             db={"get_one": []},
             n2vc=self.n2vc,
-            apt_mirror="192.168.0.100",
-            enable_os_upgrade=True,
         )
         mock_update_endpoints.assert_called_once_with([self.endpoint])
         mock__get_api_endpoints_db.assert_called_once()
@@ -1072,6 +1064,78 @@ class AddRelationTest(LibjujuTestCase):
 # TODO destroy_model testcase
 
 
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_controller")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_model")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.disconnect_controller")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju._get_application")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.disconnect_model")
+class DestroyApplicationTest(LibjujuTestCase):
+    def setUp(self):
+        super(DestroyApplicationTest, self).setUp()
+
+    def test_success(
+            self,
+            mock_get_controller,
+            mock_get_model,
+            mock_disconnect_controller,
+            mock_get_application,
+            mock_disconnect_model,
+    ):
+        mock_get_application.return_value = FakeApplication()
+        mock_get_model.return_value = None
+        self.loop.run_until_complete(
+            self.libjuju.destroy_application(
+                "existing_model",
+                "existing_app",
+                3600,
+            )
+        )
+        mock_get_application.assert_called()
+        mock_disconnect_controller.assert_called_once()
+        mock_disconnect_model.assert_called_once()
+
+    def test_no_application(
+            self,
+            mock_get_controller,
+            mock_get_model,
+            mock_disconnect_controller,
+            mock_get_application,
+            mock_disconnect_model,
+    ):
+        mock_get_model.return_value = None
+        mock_get_application.return_value = None
+
+        self.loop.run_until_complete(
+            self.libjuju.destroy_application(
+                "existing_model",
+                "existing_app",
+                3600,
+            )
+        )
+        mock_get_application.assert_called()
+
+    def test_exception(
+            self,
+            mock_get_controller,
+            mock_get_model,
+            mock_disconnect_controller,
+            mock_get_application,
+            mock_disconnect_model,
+    ):
+        mock_get_application.return_value = FakeApplication
+        mock_get_model.return_value = None
+
+        with self.assertRaises(Exception):
+            self.loop.run_until_complete(
+                self.libjuju.destroy_application(
+                    "existing_model",
+                    "existing_app",
+                    0,
+                )
+            )
+            mock_get_application.assert_called_once()
+
+
 # @asynctest.mock.patch("juju.model.Model.get_machines")
 # @asynctest.mock.patch("logging.Logger.debug")
 # class DestroyMachineTest(LibjujuTestCase):