X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=genericparser%2Fpackages%2Ftests%2Ftest_nspackage.py;fp=genericparser%2Fpackages%2Ftests%2Ftest_nspackage.py;h=0000000000000000000000000000000000000000;hb=a32c2b20207885d895bd96204cc166fca14db97b;hp=393e0f7f482e6d6f28db94074dbfcbf0f56f89ba;hpb=431a5a35a8e0a26d21c663167303696db8a7a2a6;p=modeling%2Fetsicatalog.git diff --git a/genericparser/packages/tests/test_nspackage.py b/genericparser/packages/tests/test_nspackage.py deleted file mode 100644 index 393e0f7..0000000 --- a/genericparser/packages/tests/test_nspackage.py +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 2017 ZTE Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file 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. - -import json -import mock -from rest_framework import status -from django.test import TestCase -from django.test import Client - -from genericparser.pub.utils import restcall, toscaparsers -from genericparser.pub.database.models import NSPackageModel, VnfPackageModel, PnfPackageModel -from genericparser.pub.msapi import sdc -from .const import nsd_data - - -class TestNsPackage(TestCase): - def setUp(self): - self.client = Client() - NSPackageModel.objects.filter().delete() - VnfPackageModel.objects.filter().delete() - self.nsd_data = nsd_data - - def tearDown(self): - pass - - def test_ns_pkg_distribute_when_ns_exists(self): - NSPackageModel(nsPackageId="1", nsdId="2").save() - resp = self.client.post( - "/api/parser/v1/nspackages", {"csarId": "1"}, format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual("failed", resp.data["status"]) - self.assertEqual( - "NS CSAR(1) already exists.", - resp.data["statusDescription"]) - - @mock.patch.object(restcall, 'call_req') - def test_ns_pkg_distribute_when_csar_not_exist(self, mock_call_req): - mock_call_req.return_value = [0, "[]", '200'] - resp = self.client.post( - "/api/parser/v1/nspackages", {"csarId": "1"}, format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual("failed", resp.data["status"]) - self.assertEqual( - "Failed to query artifact(services,1) from sdc.", - resp.data["statusDescription"]) - - @mock.patch.object(restcall, 'call_req') - @mock.patch.object(sdc, 'download_artifacts') - @mock.patch.object(toscaparsers, 'parse_nsd') - def test_ns_pkg_distribute_when_nsd_already_exists( - self, mock_parse_nsd, mock_download_artifacts, mock_call_req): - mock_parse_nsd.return_value = json.JSONEncoder().encode(self.nsd_data) - mock_download_artifacts.return_value = "/home/vcpe.csar" - mock_call_req.return_value = [0, json.JSONEncoder().encode([{ - "uuid": "1", - "toscaModelURL": "https://127.0.0.1:1234/sdc/v1/vcpe.csar", - "distributionStatus": "DISTRIBUTED" - }]), '200'] - NSPackageModel(nsPackageId="2", nsdId="VCPE_NS").save() - resp = self.client.post( - "/api/parser/v1/nspackages", {"csarId": "1"}, format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual("failed", resp.data["status"]) - self.assertEqual( - "NSD(VCPE_NS) already exists.", - resp.data["statusDescription"]) - - @mock.patch.object(restcall, 'call_req') - @mock.patch.object(sdc, 'download_artifacts') - @mock.patch.object(toscaparsers, 'parse_nsd') - def test_ns_pkg_distribute_when_nf_not_distributed( - self, mock_parse_nsd, mock_download_artifacts, mock_call_req): - mock_parse_nsd.return_value = json.JSONEncoder().encode(self.nsd_data) - mock_download_artifacts.return_value = "/home/vcpe.csar" - mock_call_req.return_value = [0, json.JSONEncoder().encode([{ - "uuid": "1", - "toscaModelURL": "https://127.0.0.1:1234/sdc/v1/vcpe.csar", - "distributionStatus": "DISTRIBUTED", - }]), '200'] - resp = self.client.post( - "/api/parser/v1/nspackages", {"csarId": "1"}, format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual("failed", resp.data["status"]) - self.assertEqual( - "VNF package(vcpe_vfw_zte_1_0) is not distributed.", - resp.data["statusDescription"]) - - @mock.patch.object(restcall, 'call_req') - @mock.patch.object(sdc, 'download_artifacts') - @mock.patch.object(toscaparsers, 'parse_nsd') - def test_ns_pkg_distribute_when_successfully( - self, mock_parse_nsd, mock_download_artifacts, mock_call_req): - mock_parse_nsd.return_value = json.JSONEncoder().encode(self.nsd_data) - mock_download_artifacts.return_value = "/home/vcpe.csar" - mock_call_req.return_value = [0, json.JSONEncoder().encode([{ - "uuid": "1", - "toscaModelURL": "https://127.0.0.1:1234/sdc/v1/vcpe.csar", - "distributionStatus": "DISTRIBUTED" - }]), '200'] - VnfPackageModel(vnfPackageId="1", vnfdId="vcpe_vfw_zte_1_0").save() - PnfPackageModel(pnfPackageId="1", pnfdId="m6000_s").save() - resp = self.client.post( - "/api/parser/v1/nspackages", {"csarId": "1"}, format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual("success", resp.data["status"]) - self.assertEqual( - "CSAR(1) distributed successfully.", - resp.data["statusDescription"]) - - @mock.patch.object(sdc, 'get_artifacts') - def test_ns_when_not_distributed_by_sdc(self, mock_get_artifacts): - mock_get_artifacts.return_value = [{ - "uuid": "1", - "invariantUUID": "63eaec39-ffbe-411c-a838-448f2c73f7eb", - "name": "underlayvpn", - "version": "2.0", - "toscaModelURL": "/sdc/v1/genericparser/resources/c94490a0-f7ef-48be-b3f8-8d8662a37236/toscaModel", - "category": "Volte", - "subCategory": "VolteVNF", - "resourceType": "VF", - "lifecycleState": "CERTIFIED", - "distributionStatus": "DISTRIBUTION_APPROVED", - "lastUpdaterUserId": "jh0003" - }] - resp = self.client.post( - "/api/parser/v1/nspackages", {"csarId": "1"}, format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual("failed", resp.data["status"]) - self.assertEqual( - "The artifact (services,1) is not distributed from sdc.", - resp.data["statusDescription"]) - - ########################################################################## - - def test_ns_pkg_normal_delete(self): - NSPackageModel(nsPackageId="8", nsdId="2").save() - resp = self.client.delete("/api/parser/v1/nspackages/8") - self.assertEqual(resp.status_code, status.HTTP_200_OK) - self.assertEqual("success", resp.data["status"]) - self.assertEqual( - "Delete CSAR(8) successfully.", - resp.data["statusDescription"]) - - def test_ns_pkg_get_all(self): - NSPackageModel( - nsPackageId="13", - nsdId="2", - nsdDesginer="2", - nsdVersion="2", - nsPackageUri="13.csar", - nsdModel="").save() - NSPackageModel( - nsPackageId="14", - nsdId="3", - nsdDesginer="3", - nsdVersion="3", - nsPackageUri="14.csar", - nsdModel="").save() - resp = self.client.get("/api/parser/v1/nspackages") - self.assertEqual(resp.status_code, status.HTTP_200_OK) - expect_data = [{"csarId": "13", - "packageInfo": {"csarName": "13.csar", - "nsdProvider": "2", - "nsdId": "2", - "nsPackageId": "13", - "downloadUrl": "http://127.0.0.1:8806/static/genericparser/13/13.csar", - "nsdModel": "", - "nsdVersion": "2", - "nsdInvariantId": None - }}, - {"csarId": "14", - "packageInfo": {"csarName": "14.csar", - "nsdProvider": "3", - "nsdId": "3", - "nsPackageId": "14", - "downloadUrl": "http://127.0.0.1:8806/static/genericparser/14/14.csar", - "nsdModel": "", - "nsdVersion": "3", - "nsdInvariantId": None}}] - self.assertEqual(expect_data, resp.data) - - def test_ns_pkg_get_one(self): - NSPackageModel( - nsPackageId="14", - nsdId="2", - nsdDesginer="3", - nsdVersion="4", - nsPackageUri="14.csar", - nsdModel="").save() - resp = self.client.get("/api/parser/v1/nspackages/14") - self.assertEqual(resp.status_code, status.HTTP_200_OK) - expect_data = { - "csarId": "14", - "packageInfo": { - "nsdId": "2", - "nsPackageId": "14", - "nsdProvider": "3", - "nsdVersion": "4", - "csarName": "14.csar", - "nsdModel": "", - "downloadUrl": "http://127.0.0.1:8806/static/genericparser/14/14.csar", - "nsdInvariantId": None}} - self.assertEqual(expect_data, resp.data) - - def test_ns_pkg_get_one_not_found(self): - resp = self.client.get("/api/parser/v1/nspackages/22") - self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) - self.assertEqual( - {"error": "Ns package[22] not Found."}, - resp.data) - - ########################################################################## - - @mock.patch.object(toscaparsers, 'parse_nsd') - def test_nsd_parse_normal(self, mock_parse_nsd): - NSPackageModel(nsPackageId="18", nsdId="12").save() - mock_parse_nsd.return_value = json.JSONEncoder().encode({"a": "b"}) - req_data = {"csarId": "18", "inputs": []} - resp = self.client.post( - "/api/parser/v1/parsernsd", - req_data, - format='json') - self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED) - self.assertEqual({"model": '{"a": "b"}'}, resp.data) - - def test_nsd_parse_when_csar_not_exist(self): - req_data = {"csarId": "1", "inputs": []} - resp = self.client.post( - "/api/parser/v1/parsernsd", - req_data, - format='json') - self.assertEqual( - resp.status_code, - status.HTTP_500_INTERNAL_SERVER_ERROR) - self.assertEqual(resp.data, {"error": "NS CSAR(1) does not exist."})