From eb81ed139205528aca0085d8f8012230eff9deb4 Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Wed, 11 Oct 2017 16:20:49 +0800 Subject: Fix vfc-nfvo-lcm ns creation unit test Change-Id: I7d2f9684315391ca8e9433234e02b4e3ebd96abb Issue-ID: VFC-524 Signed-off-by: ying.yunlong --- lcm/ns/tests/test_ns_create.py | 51 +++++++++++++++++++++--------------------- lcm/ns/views.py | 1 + lcm/settings.py | 2 +- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/lcm/ns/tests/test_ns_create.py b/lcm/ns/tests/test_ns_create.py index 7f6c7dac..55397bb1 100644 --- a/lcm/ns/tests/test_ns_create.py +++ b/lcm/ns/tests/test_ns_create.py @@ -11,53 +11,55 @@ # 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 uuid import mock from django.test import TestCase, Client from rest_framework import status +from rest_framework.test import APIClient from lcm.ns.ns_create import CreateNSService from lcm.pub.database.models import NSInstModel from lcm.pub.exceptions import NSLCMException +from lcm.pub.utils import restcall class TestNsInstantiate(TestCase): def setUp(self): self.client = Client() + self.client1 = APIClient() self.nsd_id = str(uuid.uuid4()) self.ns_package_id = str(uuid.uuid4()) def tearDown(self): NSInstModel.objects.all().delete() - # @mock.patch.object(restcall, 'call_req') - # def test_create_ns(self, mock_call_req): - # nspackage_info = { - # "csarId": self.ns_package_id, - # "packageInfo": {} - # } - # r1_query_nspackage_from_catalog = [0, json.JSONEncoder().encode(nspackage_info), '201'] - # r2_create_ns_to_aai = [0, json.JSONEncoder().encode({}), '201'] - # mock_call_req.side_effect = [r1_query_nspackage_from_catalog, r2_create_ns_to_aai] - # data = { - # "context": { - # "global-customer-id": "global-customer-id-test1", - # "service-type": "service-type-test1" - # }, - # "csarId": self.nsd_id, - # "nsName": "ns", - # "description": "description" - # } - # response = self.client.post("/api/nslcm/v1/ns", data=data, format='json') - # self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code) + @mock.patch.object(restcall, 'call_req') + def test_create_ns(self, mock_call_req): + nspackage_info = { + "csarId": self.ns_package_id, + "packageInfo": {} + } + r1_query_nspackage_from_catalog = [0, json.JSONEncoder().encode(nspackage_info), '201'] + r2_create_ns_to_aai = [0, json.JSONEncoder().encode({}), '201'] + mock_call_req.side_effect = [r1_query_nspackage_from_catalog, r2_create_ns_to_aai] + data = { + "context": { + "global-customer-id": "global-customer-id-test1", + "service-type": "service-type-test1" + }, + "csarId": self.nsd_id, + "nsName": "ns", + "description": "description" + } + response = self.client1.post("/api/nslcm/v1/ns", data=data, format='json') + self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code) @mock.patch.object(CreateNSService, "do_biz") def test_create_ns_empty_data(self, mock_do_biz): mock_do_biz.side_effect = Exception("Exception in CreateNS.") - data = {} - response = self.client.post("/api/nslcm/v1/ns", data=data) self.assertEqual(response.data["error"], "Exception in CreateNS.") self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) @@ -67,12 +69,11 @@ class TestNsInstantiate(TestCase): def test_create_ns_non_existing_nsd(self, mock_do_biz): mock_do_biz.side_effect = NSLCMException("nsd not exists.") new_nsd_id = '1' - data = { 'nsdid': new_nsd_id, 'nsname': 'ns', - 'description': 'description'} - + 'description': 'description' + } response = self.client.post("/api/nslcm/v1/ns", data=data) self.assertEqual(response.data["error"], "nsd not exists.") self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) diff --git a/lcm/ns/views.py b/lcm/ns/views.py index f87a6ebb..4c403d16 100644 --- a/lcm/ns/views.py +++ b/lcm/ns/views.py @@ -61,6 +61,7 @@ class CreateNSView(APIView): try: ns_inst_id = CreateNSService(csar_id, ns_name, description, context).do_biz() except Exception as e: + logger.error(traceback.format_exc()) logger.error("Exception in CreateNS: %s", e.message) return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) logger.debug("CreateNSView::post::ret={'nsInstanceId':%s}", ns_inst_id) diff --git a/lcm/settings.py b/lcm/settings.py index 8f9f732a..9a095b3f 100644 --- a/lcm/settings.py +++ b/lcm/settings.py @@ -72,7 +72,7 @@ REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': ( 'rest_framework.parsers.JSONParser', 'rest_framework.parsers.MultiPartParser', - # 'rest_framework.parsers.FormParser', + 'rest_framework.parsers.FormParser', # 'rest_framework.parsers.FileUploadParser', ) } -- cgit 1.2.3-korg