aboutsummaryrefslogtreecommitdiffstats
path: root/onap-client/onap_client/sdc/tests
diff options
context:
space:
mode:
authorstark, steven <steven.stark@att.com>2020-03-11 14:30:58 -0700
committerstark, steven <steven.stark@att.com>2020-03-12 14:41:09 -0700
commitc02d3ed39e53d4ce56406a43089fc4a336c43f17 (patch)
tree8354fe71b2b4d379f36042b76c0e29775692f03e /onap-client/onap_client/sdc/tests
parentd7d8722ce27e308defb6764d8d76f85ce7d63927 (diff)
[VVP] Adding onap-client intial commit.
This is supplementary tooling to interact with various ONAP applications. It will be used by the OVP VNF Testcase, it's not deployed with the ONAP platform. Issue-ID: VVP-381 Change-Id: I2ff3952ba8f4b9448acb5a24717ccc3b1f0a92fe Signed-off-by: stark, steven <steven.stark@att.com>
Diffstat (limited to 'onap-client/onap_client/sdc/tests')
-rw-r--r--onap-client/onap_client/sdc/tests/__init__.py0
-rw-r--r--onap-client/onap_client/sdc/tests/test.zipbin0 -> 428 bytes
-rw-r--r--onap-client/onap_client/sdc/tests/test_license_model.py125
-rw-r--r--onap-client/onap_client/sdc/tests/test_sdc_client.py68
-rw-r--r--onap-client/onap_client/sdc/tests/test_vnf.py172
-rw-r--r--onap-client/onap_client/sdc/tests/test_vsp.py118
6 files changed, 483 insertions, 0 deletions
diff --git a/onap-client/onap_client/sdc/tests/__init__.py b/onap-client/onap_client/sdc/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/onap-client/onap_client/sdc/tests/__init__.py
diff --git a/onap-client/onap_client/sdc/tests/test.zip b/onap-client/onap_client/sdc/tests/test.zip
new file mode 100644
index 0000000..37b2ed1
--- /dev/null
+++ b/onap-client/onap_client/sdc/tests/test.zip
Binary files differ
diff --git a/onap-client/onap_client/sdc/tests/test_license_model.py b/onap-client/onap_client/sdc/tests/test_license_model.py
new file mode 100644
index 0000000..459c2e0
--- /dev/null
+++ b/onap-client/onap_client/sdc/tests/test_license_model.py
@@ -0,0 +1,125 @@
+# -*- coding: utf8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/validation-scripts
+# ===================================================================
+# Copyright © 2020 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+
+import responses
+from onap_client.client.clients import Client
+from onap_client.sdc.license_model import LicenseModel
+from onap_client.tests.utils import mockup_client, mockup_catalog_item
+
+license_model_client = Client().sdc.license_model
+
+
+@responses.activate
+def test_license_model_create():
+ LICENSE_MODEL_ID = "license_model_id"
+ LICENSE_MODEL_VERSION_ID = "license_model_version_id"
+ FEATURE_GROUP_ID = "feature_group_id"
+ KEYGROUP_ID = "key_group_id"
+ ENTITLEMENT_POOL_ID = "entitlement_pool_id"
+ LICENSE_AGREEMENT_ID = "license_agreement_id"
+ VENDOR_NAME = "vendor_name"
+ ID = "id"
+ DESCRIPTION = "description"
+
+ mockup_catalog_item(
+ license_model_client.catalog_items["ADD_LICENSE_MODEL"],
+ override_return_data={
+ "itemId": LICENSE_MODEL_ID,
+ "version": {"id": LICENSE_MODEL_VERSION_ID},
+ },
+ )
+
+ mockup_catalog_item(
+ license_model_client.catalog_items["ADD_KEY_GROUP"],
+ override_return_data={"value": KEYGROUP_ID},
+ override_uri_params={
+ "license_model_id": LICENSE_MODEL_ID,
+ "license_model_version_id": LICENSE_MODEL_VERSION_ID,
+ },
+ )
+
+ mockup_catalog_item(
+ license_model_client.catalog_items["ADD_ENTITLEMENT_POOL"],
+ override_return_data={"value": ENTITLEMENT_POOL_ID},
+ override_uri_params={
+ "license_model_id": LICENSE_MODEL_ID,
+ "license_model_version_id": LICENSE_MODEL_VERSION_ID,
+ },
+ )
+
+ mockup_catalog_item(
+ license_model_client.catalog_items["ADD_FEATURE_GROUP"],
+ override_return_data={"value": FEATURE_GROUP_ID},
+ override_uri_params={
+ "license_model_id": LICENSE_MODEL_ID,
+ "license_model_version_id": LICENSE_MODEL_VERSION_ID,
+ },
+ )
+
+ mockup_catalog_item(
+ license_model_client.catalog_items["ADD_LICENSE_AGREEMENT"],
+ override_return_data={"value": LICENSE_AGREEMENT_ID},
+ override_uri_params={
+ "license_model_id": LICENSE_MODEL_ID,
+ "license_model_version_id": LICENSE_MODEL_VERSION_ID,
+ },
+ )
+
+ return_data = {"vendorName": VENDOR_NAME, "id": ID, "description": DESCRIPTION}
+ mockup_catalog_item(
+ license_model_client.catalog_items["GET_LICENSE_MODEL"],
+ override_return_data=return_data,
+ override_uri_params={
+ "license_model_id": LICENSE_MODEL_ID,
+ "license_model_version_id": LICENSE_MODEL_VERSION_ID,
+ },
+ )
+
+ mockup_client(license_model_client)
+
+ lm = LicenseModel(
+ VENDOR_NAME,
+ "abc123",
+ "entitlement_pool_name",
+ "key_group_name",
+ "feature_group_name",
+ "license_agreement_name",
+ "license_start_date",
+ "license_end_date",
+ )
+
+ assert lm.tosca == return_data
diff --git a/onap-client/onap_client/sdc/tests/test_sdc_client.py b/onap-client/onap_client/sdc/tests/test_sdc_client.py
new file mode 100644
index 0000000..c4188a9
--- /dev/null
+++ b/onap-client/onap_client/sdc/tests/test_sdc_client.py
@@ -0,0 +1,68 @@
+# -*- coding: utf8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/validation-scripts
+# ===================================================================
+# Copyright © 2020 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+
+from onap_client.client.clients import Client
+
+
+def test_sdc_client():
+ c = Client()
+
+ assert hasattr(c, "sdc")
+
+
+def test_license_model_client():
+ c = Client().sdc
+
+ assert hasattr(c, "license_model")
+
+
+def test_vsp_client():
+ c = Client().sdc
+
+ assert hasattr(c, "vsp")
+
+
+def test_vnf_client():
+ c = Client().sdc
+
+ assert hasattr(c, "vnf")
+
+
+def test_service_client():
+ c = Client().sdc
+
+ assert hasattr(c, "service")
diff --git a/onap-client/onap_client/sdc/tests/test_vnf.py b/onap-client/onap_client/sdc/tests/test_vnf.py
new file mode 100644
index 0000000..025a2d8
--- /dev/null
+++ b/onap-client/onap_client/sdc/tests/test_vnf.py
@@ -0,0 +1,172 @@
+# -*- coding: utf8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/validation-scripts
+# ===================================================================
+# Copyright © 2020 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+
+import responses
+from onap_client.tests.utils import mockup_client, mockup_catalog_item
+from onap_client.client.clients import Client
+from onap_client.sdc.vnf import VNF
+from onap_client.sdc.vnf import (
+ instance_ids_for_property,
+ network_role_property_for_instance,
+)
+
+vnf_client = Client().sdc.vnf
+vsp_client = Client().sdc.vsp
+
+
+@responses.activate
+def test_vnf_create():
+ SOFTWARE_PRODUCT_NAME = "software_product_name"
+ SOFTWARE_PRODUCT_ID = "software_product_id"
+ SOFTWARE_PRODUCT_VERSION_ID = "software_product_version_id"
+ VNF_NAME = "vnf_name"
+ RESOURCE_TYPE = "VF"
+ CATALOG_RESOURCE_ID = "catalog_resource_id"
+
+ return_data = {
+ "uniqueId": CATALOG_RESOURCE_ID,
+ "componentInstancesInputs": {
+ "instance_id1": [
+ {"name": "vm_type_tag", "value": "red"},
+ {"name": "nf_role", "value": "dfankafd"},
+ ]
+ },
+ "name": VNF_NAME,
+ }
+ mockup_catalog_item(
+ vsp_client.catalog_items["GET_SOFTWARE_PRODUCTS"],
+ override_return_data={
+ "results": [{"name": SOFTWARE_PRODUCT_NAME, "id": SOFTWARE_PRODUCT_ID}]
+ },
+ )
+ mockup_catalog_item(
+ vsp_client.catalog_items["GET_SOFTWARE_PRODUCT_VERSIONS"],
+ override_return_data={
+ "results": [
+ {"name": SOFTWARE_PRODUCT_NAME, "id": SOFTWARE_PRODUCT_VERSION_ID}
+ ]
+ },
+ override_uri_params={"software_product_id": SOFTWARE_PRODUCT_ID},
+ )
+ mockup_catalog_item(
+ vsp_client.catalog_items["GET_SOFTWARE_PRODUCT"],
+ override_return_data={"vendorName": "vendor_name"},
+ override_uri_params={
+ "software_product_id": SOFTWARE_PRODUCT_ID,
+ "software_product_version_id": SOFTWARE_PRODUCT_VERSION_ID,
+ },
+ )
+ mockup_catalog_item(
+ vnf_client.catalog_items["GET_RESOURCES"],
+ override_return_data={"resources": []},
+ )
+ mockup_catalog_item(
+ vnf_client.catalog_items["ADD_CATALOG_RESOURCE"],
+ override_return_data=return_data,
+ )
+ mockup_catalog_item(
+ vnf_client.catalog_items["GET_CATALOG_RESOURCE"],
+ override_return_data=return_data,
+ override_uri_params={"catalog_resource_id": CATALOG_RESOURCE_ID},
+ )
+ mockup_catalog_item(
+ vnf_client.catalog_items["CERTIFY_CATALOG_RESOURCE"],
+ override_return_data=return_data,
+ override_uri_params={"catalog_resource_id": CATALOG_RESOURCE_ID},
+ )
+ mockup_catalog_item(
+ vnf_client.catalog_items["ADD_CATALOG_RESOURCE_PROPERTY"],
+ override_uri_params={
+ "catalog_resource_id": CATALOG_RESOURCE_ID,
+ "catalog_resource_instance_id": "instance_id1",
+ },
+ )
+
+ mockup_client(vnf_client)
+
+ vnf = VNF(
+ SOFTWARE_PRODUCT_NAME,
+ VNF_NAME,
+ RESOURCE_TYPE,
+ vm_types=[{"vm_type": "red", "properties": {"nf_role": "blue"}}],
+ )
+
+ vnf._submit()
+
+ assert "catalog_resource_name" in vnf.tosca
+
+
+def test_instance_ids_for_property():
+ vnf_model = {
+ "componentInstancesInputs": {
+ "item1id": [
+ {"name": "vm_type", "value": "db"},
+ {"name": "otherprop", "value": "otherval"},
+ ],
+ "item2id": [
+ {"name": "vm_type", "value": "db"},
+ {"name": "otherprop", "value": "otherval"},
+ ],
+ }
+ }
+
+ ids = instance_ids_for_property(vnf_model, "vm_type", "db")
+
+ assert "item1id" in ids and "item2id" in ids
+
+
+def test_network_role_property_for_instance():
+ vnf_model = {
+ "componentInstancesInputs": {
+ "item1id": [
+ {"name": "vm_type", "value": "db"},
+ {"name": "item1id.port123.oam.network_role_tag", "value": "oam"},
+ {
+ "name": "item1id.port123.oam.network_role",
+ "value": "ACTUALNETWORKROLE",
+ },
+ ],
+ "item2id": [
+ {"name": "vm_type", "value": "db"},
+ {"name": "otherprop", "value": "otherval"},
+ ],
+ }
+ }
+
+ prop = network_role_property_for_instance("oam", vnf_model, "item1id")
+
+ assert prop == "item1id.port123.oam.network_role"
diff --git a/onap-client/onap_client/sdc/tests/test_vsp.py b/onap-client/onap_client/sdc/tests/test_vsp.py
new file mode 100644
index 0000000..4d71a81
--- /dev/null
+++ b/onap-client/onap_client/sdc/tests/test_vsp.py
@@ -0,0 +1,118 @@
+# -*- coding: utf8 -*-
+# ============LICENSE_START=======================================================
+# org.onap.vvp/validation-scripts
+# ===================================================================
+# Copyright © 2020 AT&T Intellectual Property. All rights reserved.
+# ===================================================================
+#
+# Unless otherwise specified, all software contained herein is licensed
+# under the Apache License, Version 2.0 (the "License");
+# you may not use this software except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+# Unless otherwise specified, all documentation contained herein is licensed
+# under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+# you may not use this documentation except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://creativecommons.org/licenses/by/4.0/
+#
+# Unless required by applicable law or agreed to in writing, documentation
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# ============LICENSE_END============================================
+
+import responses
+from onap_client.client.clients import Client
+from onap_client import sdc
+from onap_client.tests.utils import mockup_client, mockup_catalog_item
+from os.path import dirname, abspath
+
+THIS_DIR = dirname(abspath(__file__))
+
+license_model_client = Client().sdc.license_model
+vsp_client = Client().sdc.vsp
+
+
+@responses.activate
+def test_vsp_create():
+ LICENSE_MODEL_ID = "license_model_id"
+ LICENSE_MODEL_VERSION_ID = "license_model_version_id"
+ FEATURE_GROUP_ID = "feature_group_id"
+ LICENSE_AGREEMENT_ID = "license_agreement_id"
+ LICENSE_MODEL_NAME = "test"
+ VSP_MODEL_ID = "software_product_id"
+ VSP_MODEL_VERSION_ID = "software_product_version_id"
+ VSP_NAME = "software_product_name"
+
+ mockup_catalog_item(
+ license_model_client.catalog_items["GET_LICENSE_MODELS"],
+ override_return_data={
+ "results": [{"name": LICENSE_MODEL_NAME, "id": LICENSE_MODEL_ID}]
+ },
+ )
+ mockup_catalog_item(
+ license_model_client.catalog_items["GET_LICENSE_MODEL_VERSIONS"],
+ override_return_data={
+ "results": [{"name": LICENSE_MODEL_NAME, "id": LICENSE_MODEL_VERSION_ID}]
+ },
+ )
+ mockup_catalog_item(
+ license_model_client.catalog_items["GET_LICENSE_MODEL_VERSION_ATTRIBUTE"],
+ override_return_data={
+ "results": [{"name": LICENSE_MODEL_NAME, "id": FEATURE_GROUP_ID}]
+ },
+ override_uri_params={"attribute": "feature-groups"},
+ )
+ mockup_catalog_item(
+ license_model_client.catalog_items["GET_LICENSE_MODEL_VERSION_ATTRIBUTE"],
+ override_return_data={
+ "results": [{"name": LICENSE_MODEL_NAME, "id": LICENSE_AGREEMENT_ID}]
+ },
+ override_uri_params={"attribute": "license-agreements"},
+ )
+ mockup_client(license_model_client)
+
+ mockup_catalog_item(
+ vsp_client.catalog_items["GET_SOFTWARE_PRODUCTS"],
+ override_return_data={"results": []},
+ )
+ mockup_catalog_item(
+ vsp_client.catalog_items["ADD_SOFTWARE_PRODUCT"],
+ override_return_data={
+ "itemId": VSP_MODEL_ID,
+ "version": {"id": VSP_MODEL_VERSION_ID},
+ },
+ )
+ mockup_catalog_item(
+ vsp_client.catalog_items["GET_SOFTWARE_PRODUCT"],
+ override_return_data={"name": VSP_NAME},
+ )
+ mockup_client(vsp_client)
+
+ vsp = sdc.vsp.VSP(
+ "vendor_name",
+ LICENSE_MODEL_NAME,
+ "{}/test.zip".format(THIS_DIR),
+ "application/zip",
+ VSP_NAME,
+ "description",
+ "category",
+ "sub_category",
+ contributers=["test123"],
+ )
+
+ assert vsp.tosca == {"name": VSP_NAME}