X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=n2vc%2Ftests%2Funit%2Ftest_k8s_juju_conn.py;h=ead7b5324ae75ea4b0688c5aba9c02ec08eb7735;hb=HEAD;hp=6119d504ae1767559e7063f0b4a72e77db938164;hpb=4b68cb610f768a4d59e9dd67b974eb1a4f61038b;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 6119d50..1de1288 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 @@ -75,7 +72,6 @@ class K8sJujuConnTestCase(asynctest.TestCase): fs=fslocal.FsLocal(), db=self.db, log=None, - loop=self.loop, on_update_db=None, ) self.k8s_juju_conn._store.get_vca_id.return_value = None @@ -230,6 +226,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) @@ -239,6 +236,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_success_cs(self, mock_chdir): @@ -251,6 +249,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() @@ -259,9 +258,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, @@ -271,6 +272,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() @@ -279,9 +281,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, @@ -290,6 +294,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() @@ -298,6 +303,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_missing_db_dict(self, mock_chdir): @@ -337,6 +343,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) def test_missing_bundle(self, mock_chdir): @@ -375,6 +382,7 @@ class InstallTest(K8sJujuConnTestCase): model_name=self.default_namespace, wait=True, timeout=1800, + instantiation_params=None, ) @@ -759,14 +767,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() @@ -786,6 +796,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")