diff options
Diffstat (limited to 'components/pm-subscription-handler/tests')
-rwxr-xr-x | components/pm-subscription-handler/tests/base_setup.py | 22 | ||||
-rwxr-xr-x | components/pm-subscription-handler/tests/test_controller.py | 42 |
2 files changed, 59 insertions, 5 deletions
diff --git a/components/pm-subscription-handler/tests/base_setup.py b/components/pm-subscription-handler/tests/base_setup.py index 0005be74..560eaeb8 100755 --- a/components/pm-subscription-handler/tests/base_setup.py +++ b/components/pm-subscription-handler/tests/base_setup.py @@ -23,7 +23,7 @@ from unittest.mock import patch, MagicMock from mod import create_app, db from mod.api.db_models import NetworkFunctionFilterModel, MeasurementGroupModel, \ - SubscriptionModel, NfSubRelationalModel + SubscriptionModel, NetworkFunctionModel, NfSubRelationalModel from mod.network_function import NetworkFunctionFilter from mod.pmsh_utils import AppConfig from mod.pmsh_config import AppConfig as NewAppConfig @@ -89,6 +89,26 @@ def create_multiple_subscription_data(subscription_names): return subscriptions +def create_multiple_network_function_data(nf_name_list): + """ + Creates list of network function model objects + + Args: + nf_name_list (list): Network function names + + Returns + list: of network function model objects + """ + nf_list = [] + for nf_name in nf_name_list: + nf = NetworkFunctionModel(nf_name, '10.10.10.32', '2001:0db8:0:0:0:0:1428:57ab', + '687kj45-d396-4efb-af02-6b83499b12f8', + 'e80a6ae3-cafd-4d24-850d-e14c084a5ca9', + 'model_name', 'pm_control', '1.0.2') + nf_list.append(nf) + return nf_list + + class BaseClassSetup(TestCase): app = None app_context = None diff --git a/components/pm-subscription-handler/tests/test_controller.py b/components/pm-subscription-handler/tests/test_controller.py index 77ab889c..962e8fb2 100755 --- a/components/pm-subscription-handler/tests/test_controller.py +++ b/components/pm-subscription-handler/tests/test_controller.py @@ -20,14 +20,16 @@ import os from unittest.mock import patch, MagicMock from http import HTTPStatus -from mod import aai_client -from mod.api.controller import status, post_subscription, get_subscription_by_name,\ - get_subscriptions +from mod import aai_client, db +from mod.api.controller import status, post_subscription, get_subscription_by_name, \ + get_subscriptions, get_meas_group_with_nfs from tests.base_setup import BaseClassSetup from mod.api.db_models import SubscriptionModel, NfMeasureGroupRelationalModel from mod.subscription import SubNfState from mod.network_function import NetworkFunctionFilter -from tests.base_setup import create_subscription_data, create_multiple_subscription_data +from tests.base_setup import create_subscription_data, create_multiple_subscription_data, \ + create_multiple_network_function_data +from mod.api.services import measurement_group_service, nf_service class ControllerTestCase(BaseClassSetup): @@ -165,3 +167,35 @@ class ControllerTestCase(BaseClassSetup): def test_get_subscriptions_api_exception(self): subs, status_code = get_subscriptions() self.assertEqual(status_code, HTTPStatus.INTERNAL_SERVER_ERROR.value) + + def test_get_meas_group_with_nfs_api(self): + sub = create_subscription_data('sub1') + nf_list = create_multiple_network_function_data(['pnf101', 'pnf102']) + measurement_group_service.save_measurement_group(sub.measurement_groups[0]. + serialize()['measurementGroup'], + sub.subscription_name) + for nf in nf_list: + nf_service.save_nf(nf) + measurement_group_service. \ + apply_nf_status_to_measurement_group(nf.nf_name, sub.measurement_groups[0]. + measurement_group_name, + SubNfState.PENDING_CREATE.value) + db.session.commit() + mg_with_nfs, status_code = get_meas_group_with_nfs('sub1', 'MG1') + self.assertEqual(status_code, HTTPStatus.OK.value) + self.assertEqual(mg_with_nfs['subscriptionName'], 'sub1') + self.assertEqual(mg_with_nfs['measurementGroupName'], 'MG1') + self.assertEqual(mg_with_nfs['administrativeState'], 'UNLOCKED') + self.assertEqual(len(mg_with_nfs['networkFunctions']), 2) + + def test_get_meas_group_with_nfs_api_none(self): + error, status_code = get_meas_group_with_nfs('sub1', 'MG1') + self.assertEqual(error['error'], 'measurement group was not defined with ' + 'the sub name: sub1 and meas group name: MG1') + self.assertEqual(status_code, HTTPStatus.NOT_FOUND.value) + + @patch('mod.api.services.measurement_group_service.query_meas_group_by_name', + MagicMock(side_effect=Exception('something failed'))) + def test_get_meas_group_with_nfs_api_exception(self): + error, status_code = get_meas_group_with_nfs('sub1', 'MG1') + self.assertEqual(status_code, HTTPStatus.INTERNAL_SERVER_ERROR.value) |