Add test_findMultivimDriver_with_version
[multicloud/framework.git] / multivimbroker / multivimbroker / tests / test_syscomm.py
index bed857d..b80047d 100644 (file)
@@ -8,8 +8,11 @@
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
+import mock
 import unittest
 
+from multivimbroker.pub import exceptions
+from multivimbroker.pub.msapi import extsys
 from multivimbroker.pub.utils import syscomm
 
 
@@ -24,3 +27,28 @@ class TestSyscomm(unittest.TestCase):
         for item in ret:
             for v in item['versions']:
                 self.assertIn(v, expected_body[item['vim_type']])
+
+    @mock.patch.object(extsys, "get_vim_by_id")
+    def test_getMultivimDriver(self, mock_get_vim):
+        mock_get_vim.return_value = {
+            "type": "openstack",
+            "version": "ocata"
+        }
+        full_path = "multicloud/v0/openstack_regionone/identity"
+        expect_path = "multicloud-ocata/v0/openstack_regionone/identity"
+        ret_path = syscomm.getMultivimDriver("openstack_regionone", full_path)
+        self.assertEqual(expect_path, ret_path)
+
+    def test_findMultivimDriver_no_type(self):
+        vim = {"type": "wrong type"}
+        self.assertRaises(exceptions.NotFound, syscomm.findMultivimDriver, vim)
+
+    def test_findMultivimDriver_no_version(self):
+        vim = {"type": "openstack"}
+        ret = syscomm.findMultivimDriver(vim)
+        self.assertEqual("multicloud-ocata", ret)
+
+    def test_findMultivimDriver_with_version(self):
+        vim = {"type": "openstack", "version": "titanium_cloud"}
+        ret = syscomm.findMultivimDriver(vim)
+        self.assertEqual("multicloud-titanium_cloud", ret)