Feature 10908: NBI Revisions
[osm/NBI.git] / osm_nbi / tests / test_instance_topics.py
index 8efb1f9..cbb80ef 100644 (file)
@@ -23,6 +23,7 @@ from osm_nbi.engine import EngineException
 from osm_common.dbmemory import DbMemory
 from osm_common.fsbase import FsBase
 from osm_common.msgbase import MsgBase
+from osm_common import dbbase
 from http import HTTPStatus
 from osm_nbi.instance_topics import NsLcmOpTopic, NsrTopic
 from osm_nbi.tests.test_db_descriptors import (
@@ -227,6 +228,34 @@ class TestNsLcmOpTopic(unittest.TestCase):
             )
 
 
+class TestNsLcmOpTopicWithMock(unittest.TestCase):
+    def setUp(self):
+        self.db = Mock(dbbase.DbBase())
+        self.fs = Mock(FsBase())
+        self.fs.get_params.return_value = {"./fake/folder"}
+        self.fs.file_open = mock_open()
+        self.msg = Mock(MsgBase())
+        # create class
+        self.nslcmop_topic = NsLcmOpTopic(self.db, self.fs, self.msg, None)
+
+    def test_get_vnfd_from_vnf_member_revision(self):
+        test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)[0]
+        test_vnfd = yaml.load(db_vnfds_text, Loader=yaml.Loader)
+        self.db.get_one.side_effect = [test_vnfr, test_vnfd]
+        vnfr = self.nslcmop_topic._get_vnfd_from_vnf_member_index("1", test_vnfr['_id'])
+        self.assertEqual(self.db.get_one.call_args_list[0][0][0], 'vnfrs', "Incorrect first DB lookup")
+        self.assertEqual(self.db.get_one.call_args_list[1][0][0], 'vnfds', "Incorrect second DB lookup")
+
+    def test_get_vnfd_from_vnf_member_no_revision(self):
+        test_vnfr = yaml.load(db_vnfrs_text, Loader=yaml.Loader)[0]
+        test_vnfr['revision'] = 3
+        test_vnfd = yaml.load(db_vnfds_text, Loader=yaml.Loader)
+        self.db.get_one.side_effect = [test_vnfr, test_vnfd]
+        vnfr = self.nslcmop_topic._get_vnfd_from_vnf_member_index("1", test_vnfr['_id'])
+        self.assertEqual(self.db.get_one.call_args_list[0][0][0], 'vnfrs', "Incorrect first DB lookup")
+        self.assertEqual(self.db.get_one.call_args_list[1][0][0], 'vnfds_revisions', "Incorrect second DB lookup")
+
+
 class TestNsrTopic(unittest.TestCase):
     def setUp(self):
         self.db = DbMemory()