X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog%2Fpackages%2Ftests%2Ftest_nsdm_subscription.py;h=4e14ca16a86d638f1075554cf14d5e5a59235fc0;hb=011186aa2d7cb73592249f0ff7f472e75b9803fa;hp=98ad9c103c12bbddae050a38c48d4eb0fd54b992;hpb=2ae44b787c0795e60276c35aeb13e104ca17bfa7;p=modeling%2Fetsicatalog.git diff --git a/catalog/packages/tests/test_nsdm_subscription.py b/catalog/packages/tests/test_nsdm_subscription.py index 98ad9c1..4e14ca1 100644 --- a/catalog/packages/tests/test_nsdm_subscription.py +++ b/catalog/packages/tests/test_nsdm_subscription.py @@ -19,21 +19,21 @@ import os from django.test import TestCase from rest_framework.test import APIClient from rest_framework import status +from requests.auth import HTTPBasicAuth from catalog.packages.biz.nsdm_subscription import NsdmSubscription from catalog.pub.database.models import NsdmSubscriptionModel -from catalog.packages.biz.notificationsutil import NotificationsUtil, prepare_nsd_notification, prepare_pnfd_notification +from catalog.packages.biz.notificationsutil import NsdNotifications, PnfNotifications from catalog.packages import const from catalog.pub.config import config as pub_config import catalog.pub.utils.timeutil from catalog.packages.tests.const import nsd_data from catalog.pub.database.models import NSPackageModel, VnfPackageModel, PnfPackageModel -from catalog.pub.config.config import CATALOG_ROOT_PATH +from catalog.pub.config.config import CATALOG_ROOT_PATH, MSB_SERVICE_IP, MSB_SERVICE_PORT from catalog.pub.utils import toscaparser class TestNsdmSubscription(TestCase): - def setUp(self): self.client = APIClient() NsdmSubscriptionModel.objects.all().delete() @@ -148,7 +148,7 @@ class TestNsdmSubscription(TestCase): response.data["callbackUri"]) @mock.patch("requests.get") - def test_nsdm_duplicate_subscription(self, mock_requests): + def test_nsdm_duplicate_filter_or_callbackuri_subscription(self, mock_requests): mock_requests.return_value.status_code = 204 mock_requests.get.return_value.status_code = 204 response = self.client.post("/api/nsd/v1/subscriptions", @@ -156,15 +156,33 @@ class TestNsdmSubscription(TestCase): self.assertEqual(201, response.status_code) self.assertEqual(self.subscription["callbackUri"], response.data["callbackUri"]) - expected_data = { - 'status': 303, - 'detail': 'Already Subscription exists with' - ' the same callbackUri and filter' - } + newsub1 = self.subscription + newsub1["callbackUri"] = "http://newcallbackuri.com" + response = self.client.post("/api/nsd/v1/subscriptions", + data=newsub1, format='json') + self.assertEqual(201, response.status_code) + newsub2 = self.subscription + newsub2["filter"]["nsdName"] = ["aaa"] + response = self.client.post("/api/nsd/v1/subscriptions", + data=newsub2, format='json') + self.assertEqual(201, response.status_code) + + @mock.patch("requests.get") + def test_nsdm_duplicate_callbackuri_filter_subscription(self, mock_requests): + mock_requests.return_value.status_code = 204 + mock_requests.get.return_value.status_code = 204 + response = self.client.post("/api/nsd/v1/subscriptions", + data=self.subscription, format='json') + self.assertEqual(201, response.status_code) + self.assertEqual(self.subscription["callbackUri"], + response.data["callbackUri"]) + subscriptionid = response.data["id"] response = self.client.post("/api/nsd/v1/subscriptions", data=self.subscription, format='json') self.assertEqual(303, response.status_code) - self.assertEqual(expected_data, response.data) + redirect_addr = "https://%s:%s/%s" % (MSB_SERVICE_IP, MSB_SERVICE_PORT, + os.path.join(const.NSDM_SUBSCRIPTION_ROOT_URI, subscriptionid)) + self.assertEqual(redirect_addr, response["Location"]) @mock.patch("requests.get") def test_nsdm_bad_request(self, mock_requests): @@ -465,7 +483,7 @@ class TestNsdmSubscription(TestCase): expected_data = { "status": 404, "detail": "Subscription(" + self.subscription_id + ") " - "doesn't exists" + "doesn't exist" } response = self.client.get('/api/nsd/v1/' 'subscriptions/' + self.subscription_id, @@ -476,7 +494,7 @@ class TestNsdmSubscription(TestCase): def test_nsdm_get_subscription_failure_bad_request(self): response = self.client.get("/api/nsd/v1/subscriptions/123", format='json') - self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code) + self.assertEqual(status.HTTP_404_NOT_FOUND, response.status_code) @mock.patch.object(NsdmSubscription, 'query_single_subscription') def test_nsdmsubscription_getsingle_when_catch_exception( @@ -518,7 +536,7 @@ class TestNsdmSubscription(TestCase): def test_nsdm_delete_subscription_failure_bad_request(self): response = self.client.delete("/api/nsd/v1/subscriptions/123", format='json') - self.assertEqual(status.HTTP_400_BAD_REQUEST, response.status_code) + self.assertEqual(status.HTTP_404_NOT_FOUND, response.status_code) @mock.patch.object(NsdmSubscription, 'delete_single_subscription') def test_nsdmsubscription_delete_when_catch_exception(self, mock_create): @@ -607,8 +625,6 @@ class TestNsdmSubscription(TestCase): 'timeStamp': "nowtime()", 'nsdInfoId': "d0ea5ec3-0b98-438a-9bea-488230cff174", 'nsdId': "b632bddc-bccd-4180-bd8d-4e8a9578eff7", - 'onboardingFailureDetails': None, - 'nsdOperationalState': None, "subscriptionId": "1111", '_links': { 'subscription': { @@ -624,7 +640,12 @@ class TestNsdmSubscription(TestCase): } } } - mock_requests_post.assert_called_with(expect_callbackuri, data=expect_notification, headers={'Connection': 'close'}) + mock_requests_post.assert_called_with(expect_callbackuri, data=expect_notification, + auth=HTTPBasicAuth("username", "password"), + headers={'Connection': 'close', + 'content-type': 'application/json', + 'accept': 'application/json'}, + verify=False) class NotificationTest(TestCase): @@ -647,14 +668,11 @@ class NotificationTest(TestCase): def test_nsdpkg_notify(self, mock_nowtime, mock_uuid, mock_requests_post): mock_nowtime.return_value = "nowtime()" mock_uuid.return_value = "1111" - notification_content = prepare_nsd_notification("nsdinfoid1", "nsdid1", - const.NSD_NOTIFICATION_TYPE.NSD_ONBOARDING_FAILURE, - "NSD(nsdid1) already exists.", operational_state=None) - filters = { - 'nsdInfoId': 'nsdInfoId', - 'nsdId': 'nsdId', - } - NotificationsUtil().send_notification(notification_content, filters, False) + notify = NsdNotifications(const.NSD_NOTIFICATION_TYPE.NSD_ONBOARDING_FAILURE, + nsd_info_id="nsdinfoid1", + nsd_id="nsdid1", + failure_details="NSD(nsdid1) already exists.", operational_state=None) + notify.send_notification() expect_callbackuri = "http://127.0.0.1/self" expect_notification = { 'id': "1111", @@ -663,7 +681,6 @@ class NotificationTest(TestCase): 'nsdInfoId': "nsdinfoid1", 'nsdId': "nsdid1", 'onboardingFailureDetails': "NSD(nsdid1) already exists.", - 'nsdOperationalState': None, "subscriptionId": "1", '_links': { 'subscription': { @@ -679,7 +696,13 @@ class NotificationTest(TestCase): } } } - mock_requests_post.assert_called_with(expect_callbackuri, data=expect_notification, headers={'Connection': 'close'}) + mock_requests_post.assert_called_with(expect_callbackuri, + data=expect_notification, + headers={'Connection': 'close', + 'content-type': 'application/json', + 'accept': 'application/json'}, + verify=False + ) @mock.patch("requests.post") @mock.patch("uuid.uuid4") @@ -687,13 +710,11 @@ class NotificationTest(TestCase): def test_pnfpkg_notify(self, mock_nowtime, mock_uuid, mock_requests_post): mock_nowtime.return_value = "nowtime()" mock_uuid.return_value = "1111" - notification_content = prepare_pnfd_notification("pnfdInfoIds1", 'pnfdId1', - const.NSD_NOTIFICATION_TYPE.PNFD_ONBOARDING) - filters = { - 'pnfdId': 'pnfdId', - 'pnfdInfoIds': 'pnfdInfoIds', - } - NotificationsUtil().send_notification(notification_content, filters, False) + notify = PnfNotifications(const.NSD_NOTIFICATION_TYPE.PNFD_ONBOARDING, + pnfd_info_id="pnfdInfoIds1", + pnfd_id='pnfdId1', + failure_details=None) + notify.send_notification() expect_callbackuri = "http://127.0.0.1/self" expect_notification = { 'id': "1111", @@ -701,7 +722,6 @@ class NotificationTest(TestCase): 'timeStamp': "nowtime()", 'pnfdInfoIds': "pnfdInfoIds1", 'pnfdId': "pnfdId1", - 'onboardingFailureDetails': None, "subscriptionId": "1", '_links': { 'subscription': { @@ -718,4 +738,7 @@ class NotificationTest(TestCase): } } mock_requests_post.assert_called_with(expect_callbackuri, data=expect_notification, - headers={'Connection': 'close'}) + headers={'Connection': 'close', + 'content-type': 'application/json', + 'accept': 'application/json'}, + verify=False)