X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=n2vc%2Ftests%2Funit%2Ftest_k8s_juju_conn.py;h=e5f150b7dcb5919aea5e25671a55af1dd9749c9a;hp=208c84922e195d6182550cf0e6f0a0d397ed7bbb;hb=2962f3e7aba84b4584d2deac30d1c163f6441a03;hpb=e69aea9ff905a2cd9376ca1a6f2c1a345d78daca diff --git a/n2vc/tests/unit/test_k8s_juju_conn.py b/n2vc/tests/unit/test_k8s_juju_conn.py index 208c849..e5f150b 100644 --- a/n2vc/tests/unit/test_k8s_juju_conn.py +++ b/n2vc/tests/unit/test_k8s_juju_conn.py @@ -19,7 +19,7 @@ import asynctest from unittest.mock import Mock from n2vc.k8s_juju_conn import K8sJujuConnector, RBAC_LABEL_KEY_NAME from osm_common import fslocal -from .utils import kubeconfig, FakeModel, FakeFileWrapper, AsyncMock +from .utils import kubeconfig, FakeModel, FakeFileWrapper, AsyncMock, FakeApplication from n2vc.exceptions import ( MethodNotImplemented, K8sException, @@ -679,3 +679,62 @@ class UpdateVcaStatusTest(K8sJujuConnTestCase): self.k8s_juju_conn.libjuju.get_executed_actions.assert_not_called() self.k8s_juju_conn.libjuju.get_actions.assert_not_called_once() self.k8s_juju_conn.libjuju.get_application_configs.assert_not_called_once() + + +class ScaleTest(K8sJujuConnTestCase): + def setUp(self): + super(ScaleTest, self).setUp() + self.application_name = "app" + self.kdu_name = "kdu-instance" + self._scale = 2 + self.k8s_juju_conn.libjuju.scale_application = AsyncMock() + + def test_success( + self + ): + self.loop.run_until_complete( + self.k8s_juju_conn.scale( + self.kdu_name, + self._scale, + self.application_name + ) + ) + self.k8s_juju_conn.libjuju.scale_application.assert_called_once() + + def test_exception(self): + self.k8s_juju_conn.libjuju.scale_application.side_effect = Exception() + with self.assertRaises(Exception): + self.loop.run_until_complete( + self.k8s_juju_conn.scale( + self.kdu_name, + self._scale, + self.application_name + ) + ) + self.k8s_juju_conn.libjuju.scale_application.assert_called_once() + + +class GetScaleCount(K8sJujuConnTestCase): + def setUp(self): + super(GetScaleCount, self).setUp() + self.k8s_juju_conn.libjuju.get_model_status = AsyncMock() + + def test_success(self): + applications = {"app": FakeApplication()} + model = FakeModel(applications=applications) + self.k8s_juju_conn.libjuju.get_model_status.return_value = model + status = self.loop.run_until_complete( + self.k8s_juju_conn.get_scale_count("app", "kdu_instance") + ) + self.assertEqual(status, 2) + self.k8s_juju_conn.libjuju.get_model_status.assert_called_once() + + def test_exception(self): + self.k8s_juju_conn.libjuju.get_model_status.side_effect = Exception() + status = None + with self.assertRaises(Exception): + status = self.loop.run_until_complete( + self.k8s_juju_conn.status_kdu("app", "kdu_instance") + ) + self.assertIsNone(status) + self.k8s_juju_conn.libjuju.get_model_status.assert_called_once()