Use revision number for updated vnfd
[osm/LCM.git] / osm_lcm / tests / test_ns.py
index 86e2136..4234562 100644 (file)
@@ -120,6 +120,13 @@ class TestMyNS(asynctest.TestCase):
     def _ro_status(self, *args, **kwargs):
         print("Args > {}".format(args))
         print("kwargs > {}".format(kwargs))
+        if args:
+            if "update" in args:
+                ro_ns_desc = yaml.load(
+                    descriptors.ro_update_action_text, Loader=yaml.Loader
+                )
+                while True:
+                    yield ro_ns_desc
         if kwargs.get("delete"):
             ro_ns_desc = yaml.load(
                 descriptors.ro_delete_action_text, Loader=yaml.Loader
@@ -783,6 +790,24 @@ class TestMyNS(asynctest.TestCase):
             or expected_kdu_model in nsr_kdu_model_result
         )
 
+    # Test remove_vnf() and related methods
+    @asynctest.fail_on(active_handles=True)  # all async tasks must be completed
+    async def test_remove_vnf(self):
+        # Test REMOVE_VNF
+        nsr_id = descriptors.test_ids["TEST-UPDATE"]["ns"]
+        nslcmop_id = descriptors.test_ids["TEST-UPDATE"]["removeVnf"]
+        vnf_instance_id = descriptors.test_ids["TEST-UPDATE"]["vnf"]
+        self.my_ns.RO.status = asynctest.CoroutineMock(self.my_ns.RO.status, side_effect=self._ro_status("update"))
+        await self.my_ns.update(nsr_id, nslcmop_id)
+        expected_value = "COMPLETED"
+        return_value = self.db.get_one("nslcmops", {"_id": nslcmop_id}).get(
+            "operationState"
+        )
+        self.assertEqual(return_value, expected_value)
+        with self.assertRaises(Exception) as context:
+            self.db.get_one("vnfrs", {"_id": vnf_instance_id})
+        self.assertTrue("database exception Not found entry with filter" in str(context.exception))
+
     # async def test_instantiate_pdu(self):
     #     nsr_id = descriptors.test_ids["TEST-A"]["ns"]
     #     nslcmop_id = descriptors.test_ids["TEST-A"]["instantiate"]
@@ -956,7 +981,7 @@ class TestMyNS(asynctest.TestCase):
 
                 mock_charm_hash.assert_called_with(
                     "7637bcf8-cf14-42dc-ad70-c66fcf1e6e77:1/hackfest_3charmed_vnfd/charms/simple",
-                    "7637bcf8-cf14-42dc-ad70-c66fcf1e6e77/hackfest_3charmed_vnfd/charms/simple",
+                    "7637bcf8-cf14-42dc-ad70-c66fcf1e6e77:3/hackfest_3charmed_vnfd/charms/simple",
                 )
 
                 self.assertEqual(fs.sync.call_count, 2)
@@ -1126,7 +1151,7 @@ class TestMyNS(asynctest.TestCase):
 
                 mock_charm_hash.assert_called_with(
                     "7637bcf8-cf14-42dc-ad70-c66fcf1e6e77:1/hackfest_3charmed_vnfd/charms/simple",
-                    "7637bcf8-cf14-42dc-ad70-c66fcf1e6e77/hackfest_3charmed_vnfd/charms/simple",
+                    "7637bcf8-cf14-42dc-ad70-c66fcf1e6e77:3/hackfest_3charmed_vnfd/charms/simple",
                 )
 
                 self.assertEqual(fs.sync.call_count, 2)