X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=n2vc%2Ftests%2Funit%2Ftest_k8s_juju_conn.py;h=d7f55be806336fbcff3ab77c5ce01c7c1a1fbb83;hb=dd32206a3adca6e6dc18bf8aa13a926108f7280c;hp=208c84922e195d6182550cf0e6f0a0d397ed7bbb;hpb=eb8943a887e2fb8cce0240382811f9e504f3c7fb;p=osm%2FN2VC.git diff --git a/n2vc/tests/unit/test_k8s_juju_conn.py b/n2vc/tests/unit/test_k8s_juju_conn.py index 208c849..d7f55be 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, @@ -664,8 +664,9 @@ class UpdateVcaStatusTest(K8sJujuConnTestCase): self.k8s_juju_conn.libjuju.get_application_configs = AsyncMock() def test_success(self): - self.loop.run_until_complete(self.k8s_juju_conn.update_vca_status( - self.vcaStatus, self.kdu_instance)) + self.loop.run_until_complete( + self.k8s_juju_conn.update_vca_status(self.vcaStatus, self.kdu_instance) + ) self.k8s_juju_conn.libjuju.get_executed_actions.assert_called_once() self.k8s_juju_conn.libjuju.get_actions.assert_called_once() self.k8s_juju_conn.libjuju.get_application_configs.assert_called_once() @@ -674,8 +675,60 @@ class UpdateVcaStatusTest(K8sJujuConnTestCase): self.k8s_juju_conn.libjuju.get_model.return_value = None self.k8s_juju_conn.libjuju.get_executed_actions.side_effect = Exception() with self.assertRaises(Exception): - self.loop.run_until_complete(self.k8s_juju_conn.update_vca_status( - self.vcaStatus, self.kdu_instance)) + self.loop.run_until_complete( + self.k8s_juju_conn.update_vca_status(self.vcaStatus, self.kdu_instance) + ) 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()