diff options
author | 2022-02-23 13:38:34 +0000 | |
---|---|---|
committer | 2022-03-09 12:25:35 +0000 | |
commit | 36987b3ac6eccb475e9976b95a08683a86682cdc (patch) | |
tree | ff0b5a0296ef94450a04ae1b5b1701e052e27777 /components/pm-subscription-handler/tests/test_controller.py | |
parent | 6c9c8cc2a1a289ef0b4172d387376d0367549fe3 (diff) |
[PMSH] Create Measurement Group API
Creates Measurement Group for an associated Subscription
POST: /subscription/{subscription_name}/measurementGroups/{measurement_group_name}
Measurement Group structure:
{
"measurementGroup": {
"measurementGroupName": "string",
"fileBasedGP": 0,
"fileLocation": "string",
"administrativeState": "LOCKED",
"measurementTypes": [
{ "measurementType": "string" }
],
"managedObjectDNsBasic": [
{ "DN": "string" }
]
}
}
Returns:
Success: 201
Invalid Data: 400 when measurement_group_name in URI and body do not match
Not Found: 404 when subscription does not exist to associate measurement group to
Duplicate Data: Measurement group with that name already exists
Error raised for any server failure
Issue-ID: DCAEGEN2-2920
Signed-off-by: egernug <gerard.nugent@est.tech>
Change-Id: I812c5a891e9bed5433000f5da24e2667bf9a5d65
Diffstat (limited to 'components/pm-subscription-handler/tests/test_controller.py')
-rwxr-xr-x | components/pm-subscription-handler/tests/test_controller.py | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/components/pm-subscription-handler/tests/test_controller.py b/components/pm-subscription-handler/tests/test_controller.py index 797666d9..07c17be7 100755 --- a/components/pm-subscription-handler/tests/test_controller.py +++ b/components/pm-subscription-handler/tests/test_controller.py @@ -23,11 +23,12 @@ from http import HTTPStatus 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, delete_subscription_by_name, update_admin_state, \ - delete_meas_group_by_name, put_nf_filter + delete_meas_group_by_name, post_meas_group, put_nf_filter from mod.api.services.measurement_group_service import query_meas_group_by_name from tests.base_setup import BaseClassSetup from mod.api.custom_exception import InvalidDataException, DataConflictException -from mod.api.db_models import SubscriptionModel, NfMeasureGroupRelationalModel +from mod.api.db_models import SubscriptionModel, \ + NfMeasureGroupRelationalModel, MeasurementGroupModel from mod.network_function import NetworkFunctionFilter from tests.base_setup import create_subscription_data, create_multiple_subscription_data, \ create_multiple_network_function_data @@ -197,6 +198,38 @@ class ControllerTestCase(BaseClassSetup): error, status_code = get_meas_group_with_nfs('sub1', 'MG1') self.assertEqual(status_code, HTTPStatus.INTERNAL_SERVER_ERROR.value) + @patch.object(aai_client, '_get_all_aai_nf_data') + @patch.object(aai_client, 'get_aai_model_data') + def test_post_meas_group(self, mock_model_aai, mock_aai): + mock_aai.return_value = json.loads(self.aai_response_data) + mock_model_aai.return_value = json.loads(self.good_model_info) + subscription_data = create_subscription_data('Post_MG') + measurement_grp = {'subscription_name': 'sub', + 'measurementGroupName': 'MG2', + 'administrativeState': 'UNLOCKED', + 'fileBasedGP': 15, + 'fileLocation': '/pm/pm.xml', + 'measurementTypes': '[{ "measurementType": "countera" }, ' + '{ "measurementType": "counterb" }]', + 'managedObjectDNsBasic': '[{ "DN":"dna"},{"DN":"dnb"}]'} + db.session.add(subscription_data) + db.session.commit() + db.session.remove() + _, status_code = post_meas_group('Post_MG', 'MG3', measurement_grp) + self.assertEqual(status_code, 201) + + def test_post_meas_group_with_duplicate(self): + subscription_data = create_subscription_data('Post_MG') + measurement_grp = MeasurementGroupModel('Post_MG', 'MG1', 'UNLOCKED', 15, '/pm/pm.xml', + '[{ "measurementType": "countera" }, ' + '{ "measurementType": "counterb" }]', + '[{ "DN":"dna"},{"DN":"dnb"}]') + db.session.add(subscription_data) + db.session.commit() + db.session.remove() + _, status_code = post_meas_group('Post_MG', 'MG1', measurement_grp) + self.assertEqual(status_code, 409) + def test_delete_sub_when_state_unlocked(self): subscription_unlocked_data = create_subscription_data('MG_unlocked') subscription_unlocked_data.measurement_groups[0].measurement_group_name = 'unlock' |