diff options
author | stark, steven <steven.stark@att.com> | 2020-03-11 14:30:58 -0700 |
---|---|---|
committer | stark, steven <steven.stark@att.com> | 2020-03-12 14:41:09 -0700 |
commit | c02d3ed39e53d4ce56406a43089fc4a336c43f17 (patch) | |
tree | 8354fe71b2b4d379f36042b76c0e29775692f03e /onap-client/onap_client/sdc/tests | |
parent | d7d8722ce27e308defb6764d8d76f85ce7d63927 (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__.py | 0 | ||||
-rw-r--r-- | onap-client/onap_client/sdc/tests/test.zip | bin | 0 -> 428 bytes | |||
-rw-r--r-- | onap-client/onap_client/sdc/tests/test_license_model.py | 125 | ||||
-rw-r--r-- | onap-client/onap_client/sdc/tests/test_sdc_client.py | 68 | ||||
-rw-r--r-- | onap-client/onap_client/sdc/tests/test_vnf.py | 172 | ||||
-rw-r--r-- | onap-client/onap_client/sdc/tests/test_vsp.py | 118 |
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 Binary files differnew file mode 100644 index 0000000..37b2ed1 --- /dev/null +++ b/onap-client/onap_client/sdc/tests/test.zip 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} |