X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fpub%2Futils%2Ftests.py;h=55553441ea3c48ce67b7a2c13a3ccb8ebeff9f91;hb=8020d45b7bb4cd43c69425ea9c4bb1d88b250e4e;hp=87516f072dff77a7c6b7803a2ded7daac7b2208a;hpb=4f3cadd4ffcae700bc259a043b1d6c6c5a6bc98c;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/pub/utils/tests.py b/lcm/lcm/pub/utils/tests.py index 87516f07..55553441 100644 --- a/lcm/lcm/pub/utils/tests.py +++ b/lcm/lcm/pub/utils/tests.py @@ -14,21 +14,23 @@ import unittest import mock -import enumutil -import fileutil -import urllib2 -import syscomm -import timeutil -import values -import platform - -from lcm.pub.database.models import JobStatusModel, JobModel +from . import enumutil +# from . import fileutil +import json +# import urllib.request +from . import syscomm +from . import timeutil +from . import values +import codecs + +from lcm.pub.database.models import JobStatusModel, JobModel, SubscriptionModel from lcm.pub.utils.jobutil import JobUtil +from lcm.pub.utils.notificationsutil import NotificationsUtil class MockReq(): def read(self): - return "1" + return b"1" def close(self): pass @@ -46,23 +48,23 @@ class UtilsTest(unittest.TestCase): self.assertEqual(0, MY_TYPE.SAMLL) self.assertEqual(1, MY_TYPE.LARGE) - def test_create_and_delete_dir(self): - dirs = "abc/def/hij" - fileutil.make_dirs(dirs) - fileutil.make_dirs(dirs) - fileutil.delete_dirs(dirs) - - @mock.patch.object(urllib2, 'urlopen') - def test_download_file_from_http(self, mock_urlopen): - mock_urlopen.return_value = MockReq() - fileutil.delete_dirs("abc") - is_ok, f_name = fileutil.download_file_from_http("1", "abc", "1.txt") - self.assertTrue(is_ok) - if platform.system() == 'Windows': - self.assertTrue(f_name.endswith("abc\\1.txt")) - else: - self.assertTrue(f_name.endswith("abc/1.txt")) - fileutil.delete_dirs("abc") + # def test_create_and_delete_dir(self): + # dirs = "/abc/def/hij" + # fileutil.make_dirs(dirs) + # fileutil.make_dirs(dirs) + # fileutil.delete_dirs(dirs) + # + # @mock.patch.object(urllib.request, 'urlopen') + # def test_download_file_from_http(self, mock_urlopen): + # mock_urlopen.return_value = MockReq() + # fileutil.delete_dirs("abc") + # is_ok, f_name = fileutil.download_file_from_http("1", "abc", "1.txt") + # self.assertTrue(is_ok) + # if platform.system() == 'Windows': + # self.assertTrue(f_name.endswith("abc\\1.txt")) + # else: + # self.assertTrue(f_name.endswith("abc/1.txt")) + # fileutil.delete_dirs("abc") def test_query_job_status(self): job_id = "1" @@ -225,3 +227,80 @@ class UtilsTest(unittest.TestCase): self.assertEqual("def", values.ignore_case_get(data, 'abc')) self.assertEqual("klm", values.ignore_case_get(data, 'hig')) self.assertEqual("bbb", values.ignore_case_get(data, 'aaa', 'bbb')) + + +class TestNotificationUtils(unittest.TestCase): + def setUp(self): + subscription_id = 1 + auth_params = { + "authType": ["BASIC"], + "paramsBasic": { + "username": "username", + "password": "password" + } + } + notification_types = ["VnfLcmOperationOccurrenceNotification"] + operation_types = ["INSTANTIATE"] + operation_states = ["STARTING"] + vnf_instance_filter = { + 'vnfdIds': ['99442b18-a5c7-11e8-998c-bf1755941f13', '9fe4080c-b1a3-11e8-bb96-645106374fd3'], + 'vnfInstanceIds': ['99442b18-a5c7-11e8-998c-bf1755941f12'], + 'vnfInstanceNames': ['demo'], + 'vnfProductsFromProviders': { + 'vnfProvider': 'string', + 'vnfProducts': { + 'vnfProductName': 'string', + 'versions': { + 'vnfSoftwareVersion': 'string', + 'vnfdVersions': 'string' + } + } + } + } + links = { + "self": "demo" + } + SubscriptionModel(subscription_id=subscription_id, callback_uri="http://demo", + auth_info=json.dumps(auth_params), + notification_types=json.dumps(notification_types), + operation_types=json.dumps(operation_types), + operation_states=json.dumps(operation_states), + vnf_instance_filter=json.dumps(vnf_instance_filter), + links=json.dumps(links)).save() + + def tearDown(self): + SubscriptionModel.objects.all().delete() + + @mock.patch('httplib2.Http.request') + def test_send_notification(self, mock_post): + dummy_notification = { + "vnfInstanceId": "9fe4080c-b1a3-11e8-bb96-645106374fd3", + "operationState": "STARTING", + "operation": "INSTANTIATE", + "_links": {} + } + mock_post.return_value = ({"status": "204"}, codecs.encode("1234", encoding='utf-8')) + NotificationsUtil().send_notification(dummy_notification) + mock_post.assert_called_once() + + @mock.patch('httplib2.Http.request') + def test_send_notification_with_empty_filters(self, mock_post): + dummy_notification = { + "vnfInstanceId": "9fe4080c-b1a3-11e8-bb96-645106374fd3", + "operationState": "", + "operation": "", + "_links": {} + } + mock_post.return_value = ({"status": "204"}, codecs.encode("1234", encoding='utf-8')) + NotificationsUtil().send_notification(dummy_notification) + mock_post.assert_called_once() + + @mock.patch('requests.post') + def test_send_notification_unmatched_filters(self, mock_post): + dummy_notification = { + "vnfInstanceId": "9fe4080c-b1a3-11e8-bb96-xxxxx", + "operationState": "DUMMY", + "operation": "DUMMY", + } + NotificationsUtil().send_notification(dummy_notification) + mock_post.assert_not_called()