Feature 10887: Add cross-model relations support
Changes:
- Extend `add_relation` method in N2VCJujuConn to include the CMR case
- Add `add_relation` method to K8sJujuConn
- Add n2vc/definitions.py file that includes definition ofjects for
Offer and RelationEndpoint.
- Change `n2vc.libjuju.Libjuju.list_offers` method to be private, and accept a filter `offer_name` parameter.
- Update `n2vc.libjuju.Libjuju.consume` method arguments.
- Add `n2vc.libjuju.Libjuju.offer` method to create an offer.
Unit tests associated to the code changes have been either created or
updated accordingly
Change-Id: Ibf8d574528dee0fa898e0e97578dd3a6aa68316a
Signed-off-by: David Garcia <david.garcia@canonical.com>
diff --git a/n2vc/tests/unit/test_utils.py b/n2vc/tests/unit/test_utils.py
index bffbc29..3896b2f 100644
--- a/n2vc/tests/unit/test_utils.py
+++ b/n2vc/tests/unit/test_utils.py
@@ -14,7 +14,13 @@
from unittest import TestCase
-from n2vc.utils import Dict, EntityType, JujuStatusToOSM, N2VCDeploymentStatus
+from n2vc.utils import (
+ Dict,
+ EntityType,
+ JujuStatusToOSM,
+ N2VCDeploymentStatus,
+ get_ee_id_components,
+)
from juju.machine import Machine
from juju.application import Application
from juju.action import Action
@@ -84,3 +90,17 @@
osm_status = status["osm"]
self.assertTrue(juju_status in JujuStatusToOSM[entity_type])
self.assertEqual(osm_status, JujuStatusToOSM[entity_type][juju_status])
+
+
+class GetEEComponentTest(TestCase):
+ def test_valid(self):
+ model, application, machine = get_ee_id_components("model.application.machine")
+ self.assertEqual(model, "model")
+ self.assertEqual(application, "application")
+ self.assertEqual(machine, "machine")
+
+ def test_invalid(self):
+ with self.assertRaises(Exception):
+ get_ee_id_components("model.application.machine.1")
+ with self.assertRaises(Exception):
+ get_ee_id_components("model.application")