X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=n2vc%2Ftests%2Funit%2Ftest_k8s_juju_conn.py;h=1cc0809ba8835ab80a1a27120c5c7d1c4b7ce62a;hb=fedf9150c2041deb65fc54944e9be245e4b6fd21;hp=3e354946df6d0c6f3f0d5ba982f1e873ef2c0eb0;hpb=764d8664333e7a6f16353bc8f578c5681f66433f;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 3e35494..1cc0809 100644 --- a/n2vc/tests/unit/test_k8s_juju_conn.py +++ b/n2vc/tests/unit/test_k8s_juju_conn.py @@ -21,10 +21,7 @@ from n2vc.definitions import Offer, RelationEndpoint from n2vc.k8s_juju_conn import K8sJujuConnector, RBAC_LABEL_KEY_NAME from osm_common import fslocal from .utils import kubeconfig, FakeModel, FakeFileWrapper, AsyncMock, FakeApplication -from n2vc.exceptions import ( - MethodNotImplemented, - K8sException, -) +from n2vc.exceptions import MethodNotImplemented, K8sException from n2vc.vca.connection_data import ConnectionData @@ -134,9 +131,15 @@ class InitEnvTest(K8sJujuConnTestCase): uuid, created = self.loop.run_until_complete( self.k8s_juju_conn.init_env(k8s_creds=kubeconfig) ) - self.assertIsNone(created) self.assertIsNone(uuid) + self.kubectl.create_cluster_role.assert_called_once() + self.kubectl.create_service_account.assert_called_once() + self.kubectl.create_cluster_role_binding.assert_called_once() + self.kubectl.get_default_storage_class.assert_called_once() + self.kubectl.delete_cluster_role.assert_called_once() + self.kubectl.delete_service_account.assert_called_once() + self.kubectl.delete_cluster_role_binding.assert_called_once() self.k8s_juju_conn.libjuju.add_k8s.assert_called_once() @@ -224,6 +227,7 @@ class InstallTest(K8sJujuConnTestCase): kdu_name=self.kdu_name, db_dict=self.db_dict, timeout=1800, + params=None, ) ) self.assertEqual(mock_chdir.call_count, 2) @@ -233,6 +237,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_success_cs(self, mock_chdir): @@ -245,6 +250,7 @@ class InstallTest(K8sJujuConnTestCase): kdu_name=self.kdu_name, db_dict=self.db_dict, timeout=1800, + params={}, ) ) self.k8s_juju_conn.libjuju.add_model.assert_called_once() @@ -253,9 +259,11 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_success_http(self, mock_chdir): + params = {"overlay": {"applications": {"squid": {"scale": 2}}}} self.loop.run_until_complete( self.k8s_juju_conn.install( self.cluster_uuid, @@ -265,6 +273,7 @@ class InstallTest(K8sJujuConnTestCase): kdu_name=self.kdu_name, db_dict=self.db_dict, timeout=1800, + params=params, ) ) self.k8s_juju_conn.libjuju.add_model.assert_called_once() @@ -273,9 +282,11 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=params.get("overlay"), ) def test_success_not_kdu_name(self, mock_chdir): + params = {"some_key": {"applications": {"squid": {"scale": 2}}}} self.loop.run_until_complete( self.k8s_juju_conn.install( self.cluster_uuid, @@ -284,6 +295,7 @@ class InstallTest(K8sJujuConnTestCase): atomic=True, db_dict=self.db_dict, timeout=1800, + params=params, ) ) self.k8s_juju_conn.libjuju.add_model.assert_called_once() @@ -292,6 +304,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_missing_db_dict(self, mock_chdir): @@ -331,6 +344,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_missing_bundle(self, mock_chdir): @@ -369,6 +383,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) @@ -753,14 +768,16 @@ class AddRelationTest(K8sJujuConnTestCase): self.k8s_juju_conn.libjuju.get_controller = AsyncMock() self.k8s_juju_conn.libjuju.consume = AsyncMock() - def test_standard_relation(self): - relation_endpoint_1 = RelationEndpoint("model-1.app1.0", None, "endpoint") - relation_endpoint_2 = RelationEndpoint("model-1.app2.1", None, "endpoint") + def test_standard_relation_same_model_and_controller(self): + relation_endpoint_1 = RelationEndpoint("model-1.app1.0", None, "endpoint1") + relation_endpoint_2 = RelationEndpoint("model-1.app2.1", None, "endpoint2") self.loop.run_until_complete( self.k8s_juju_conn.add_relation(relation_endpoint_1, relation_endpoint_2) ) self.k8s_juju_conn.libjuju.add_relation.assert_called_once_with( - model_name="model-1", endpoint_1="app1:endpoint", endpoint_2="app2:endpoint" + model_name="model-1", + endpoint_1="app1:endpoint1", + endpoint_2="app2:endpoint2", ) self.k8s_juju_conn.libjuju.offer.assert_not_called() self.k8s_juju_conn.libjuju.consume.assert_not_called() @@ -780,6 +797,24 @@ class AddRelationTest(K8sJujuConnTestCase): "model-2", "app2:endpoint", "saas" ) + def test_cmr_relation_different_controller(self): + self.k8s_juju_conn._get_libjuju = AsyncMock( + return_value=self.k8s_juju_conn.libjuju + ) + relation_endpoint_1 = RelationEndpoint("model-1.app1.0", "vca-id-1", "endpoint") + relation_endpoint_2 = RelationEndpoint("model-1.app2.1", "vca-id-2", "endpoint") + offer = Offer("admin/model-1.app1") + self.k8s_juju_conn.libjuju.offer.return_value = offer + self.k8s_juju_conn.libjuju.consume.return_value = "saas" + self.loop.run_until_complete( + self.k8s_juju_conn.add_relation(relation_endpoint_1, relation_endpoint_2) + ) + self.k8s_juju_conn.libjuju.offer.assert_called_once_with(relation_endpoint_1) + self.k8s_juju_conn.libjuju.consume.assert_called_once() + self.k8s_juju_conn.libjuju.add_relation.assert_called_once_with( + "model-1", "app2:endpoint", "saas" + ) + def test_relation_exception(self): relation_endpoint_1 = RelationEndpoint("model-1.app1.0", None, "endpoint") relation_endpoint_2 = RelationEndpoint("model-2.app2.1", None, "endpoint")