Add INF-320 support attribute-based filter
[pti/o2.git] / tests / unit / test_ocloud.py
index dbfa65f..57ba0fe 100644 (file)
@@ -14,9 +14,8 @@
 
 import uuid
 from unittest.mock import MagicMock
-from o2dms.domain import dms
 
-from o2ims.domain import ocloud, subscription_obj, configuration_obj
+from o2ims.domain import ocloud, subscription_obj
 from o2ims.domain import resource_type as rt
 from o2ims.views import ocloud_view
 from o2common.config import config
@@ -95,15 +94,6 @@ def test_new_subscription():
         subscription1.subscriptionId == subscription_id1
 
 
-def test_new_configuration():
-    configuration_id1 = str(uuid.uuid4())
-    configuration1 = configuration_obj.Configuration(
-        configuration_id1, "https://callback/uri/write/here",
-        "SMO")
-    assert configuration_id1 is not None and\
-        configuration1.configurationId == configuration_id1
-
-
 def test_view_olcouds(mock_uow):
     session, uow = mock_uow
 
@@ -144,11 +134,17 @@ def test_view_resource_types(mock_uow):
     restype1 = MagicMock()
     restype1.serialize.return_value = {
         "resourceTypeId": resource_type_id1}
-    session.return_value.query.return_value = [restype1]
 
-    resource_type_list = ocloud_view.resource_types(uow)
-    assert str(resource_type_list[0].get(
-        "resourceTypeId")) == resource_type_id1
+    order_by = MagicMock()
+    order_by.count.return_value = 1
+    order_by.limit.return_value.offset.return_value = [restype1]
+    session.return_value.query.return_value.filter.return_value.\
+        order_by.return_value = order_by
+
+    result = ocloud_view.resource_types(uow)
+    assert result['count'] == 1
+    ret_list = result['results']
+    assert str(ret_list[0].get("resourceTypeId")) == resource_type_id1
 
 
 def test_view_resource_type_one(mock_uow):
@@ -178,11 +174,17 @@ def test_view_resource_pools(mock_uow):
     respool1 = MagicMock()
     respool1.serialize.return_value = {
         "resourcePoolId": resource_pool_id1}
-    session.return_value.query.return_value = [respool1]
 
-    resource_pool_list = ocloud_view.resource_pools(uow)
-    assert str(resource_pool_list[0].get(
-        "resourcePoolId")) == resource_pool_id1
+    order_by = MagicMock()
+    order_by.count.return_value = 1
+    order_by.limit.return_value.offset.return_value = [respool1]
+    session.return_value.query.return_value.filter.return_value.\
+        order_by.return_value = order_by
+
+    result = ocloud_view.resource_pools(uow)
+    assert result['count'] == 1
+    ret_list = result['results']
+    assert str(ret_list[0].get("resourcePoolId")) == resource_pool_id1
 
 
 def test_view_resource_pool_one(mock_uow):
@@ -216,9 +218,18 @@ def test_view_resources(mock_uow):
         "resourceId": resource_id1,
         "resourcePoolId": resource_pool_id1
     }
-    session.return_value.query.return_value.filter_by.return_value = [res1]
 
-    resource_list = ocloud_view.resources(resource_pool_id1, uow)
+    order_by = MagicMock()
+    order_by.count.return_value = 1
+    order_by.limit.return_value.offset.return_value = [res1]
+    session.return_value.query.return_value.filter.return_value.\
+        order_by.return_value = order_by
+    # TODO: workaround for sqlalchemy not mapping with resource object
+    setattr(ocloud.Resource, 'resourcePoolId', '')
+
+    result = ocloud_view.resources(resource_pool_id1, uow)
+    assert result['count'] == 1
+    resource_list = result['results']
     assert str(resource_list[0].get("resourceId")) == resource_id1
     assert str(resource_list[0].get("resourcePoolId")) == resource_pool_id1
 
@@ -253,11 +264,18 @@ def test_view_deployment_managers(mock_uow):
     dm1.serialize.return_value = {
         "deploymentManagerId": deployment_manager_id1,
     }
-    session.return_value.query.return_value = [dm1]
 
-    deployment_manager_list = ocloud_view.deployment_managers(uow)
-    assert str(deployment_manager_list[0].get(
-        "deploymentManagerId")) == deployment_manager_id1
+    order_by = MagicMock()
+    order_by.count.return_value = 1
+    order_by.limit.return_value.offset.return_value = [dm1]
+    session.return_value.query.return_value.filter.return_value.\
+        order_by.return_value = order_by
+
+    result = ocloud_view.deployment_managers(uow)
+    assert result['count'] == 1
+    ret_list = result['results']
+    assert str(ret_list[0].get("deploymentManagerId")
+               ) == deployment_manager_id1
 
 
 def test_view_deployment_manager_one(mock_uow):
@@ -290,7 +308,7 @@ def test_view_deployment_manager_one(mock_uow):
     assert deployment_manager_res.get('profile') is None
 
     # profile sol018
-    profileName = 'sol018'
+    profileName = ocloud.DeploymentManagerProfileSOL018
     cluster_endpoint = "https://test_k8s:6443"
     session.return_value.query.return_value.filter_by.return_value.first.\
         return_value.serialize.return_value['profile'] = {
@@ -303,6 +321,16 @@ def test_view_deployment_manager_one(mock_uow):
     assert str(deployment_manager_res.get(
         "profileName")) == profileName
 
+    # profile wrong name
+    profileName = 'wrong_profile'
+    session.return_value.query.return_value.filter_by.return_value.first.\
+        return_value.serialize.return_value['profile'] = {
+            "cluster_api_endpoint": cluster_endpoint
+        }
+    deployment_manager_res = ocloud_view.deployment_manager_one(
+        deployment_manager_id1, uow, profile=profileName)
+    assert deployment_manager_res is None
+
 
 def test_view_subscriptions(mock_uow):
     session, uow = mock_uow
@@ -312,11 +340,17 @@ def test_view_subscriptions(mock_uow):
     sub1.serialize.return_value = {
         "subscriptionId": subscription_id1,
     }
-    session.return_value.query.return_value = [sub1]
 
-    subscription_list = ocloud_view.subscriptions(uow)
-    assert str(subscription_list[0].get(
-        "subscriptionId")) == subscription_id1
+    order_by = MagicMock()
+    order_by.count.return_value = 1
+    order_by.limit.return_value.offset.return_value = [sub1]
+    session.return_value.query.return_value.filter.return_value.\
+        order_by.return_value = order_by
+
+    result = ocloud_view.subscriptions(uow)
+    assert result['count'] == 1
+    ret_list = result['results']
+    assert str(ret_list[0].get("subscriptionId")) == subscription_id1
 
 
 def test_view_subscription_one(mock_uow):
@@ -344,8 +378,14 @@ def test_view_subscription_one(mock_uow):
 
 def test_flask_get_list(mock_flask_uow):
     session, app = mock_flask_uow
-    session.query.return_value = []
+    order_by = MagicMock()
+    order_by.count.return_value = 0
+    order_by.limit.return_value.offset.return_value = []
+    session.return_value.query.return_value.filter.return_value.\
+        order_by.return_value = order_by
     apibase = config.get_o2ims_api_base()
+    # TODO: workaround for sqlalchemy not mapping with resource object
+    setattr(ocloud.Resource, 'resourcePoolId', '')
 
     with app.test_client() as client:
         # Get list and return empty list