Feature-9904: Enhancing NG-UI to enable Juju operational view dashboard
[osm/N2VC.git] / n2vc / tests / unit / test_n2vc_juju_conn.py
index 64b93cc..1f723fe 100644 (file)
@@ -81,6 +81,50 @@ class GetMetricssTest(N2VCJujuConnTestCase):
         mock_get_metrics.assert_called_once()
 
 
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_controller")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_model")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_executed_actions")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_actions")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju.get_application_configs")
+@asynctest.mock.patch("n2vc.libjuju.Libjuju._get_application")
+class UpdateVcaStatusTest(N2VCJujuConnTestCase):
+    def setUp(self):
+        super(UpdateVcaStatusTest, self).setUp()
+
+    def test_success(
+        self,
+        mock_get_application,
+        mock_get_application_configs,
+        mock_get_actions,
+        mock_get_executed_actions,
+        mock_get_model,
+        mock_get_controller,
+    ):
+        self.loop.run_until_complete(self.n2vc.update_vca_status(
+            {"model": {"applications": {"app": {"actions": {}}}}}))
+        mock_get_executed_actions.assert_called_once()
+        mock_get_actions.assert_called_once()
+        mock_get_application_configs.assert_called_once()
+
+    def test_exception(
+        self,
+        mock_get_application,
+        mock_get_application_configs,
+        mock_get_actions,
+        mock_get_executed_actions,
+        mock_get_model,
+        mock_get_controller,
+    ):
+        mock_get_model.return_value = None
+        mock_get_executed_actions.side_effect = Exception()
+        with self.assertRaises(Exception):
+            self.loop.run_until_complete(self.n2vc.update_vca_status(
+                {"model": {"applications": {"app": {"actions": {}}}}}))
+            mock_get_executed_actions.assert_not_called()
+            mock_get_actions.assert_not_called_once()
+            mock_get_application_configs.assert_not_called_once()
+
+
 @asynctest.mock.patch("n2vc.libjuju.Libjuju.model_exists")
 @asynctest.mock.patch("osm_common.fslocal.FsLocal.file_exists")
 @asynctest.mock.patch(