From: Taewan Kim Date: Tue, 23 May 2023 07:11:20 +0000 (+0900) Subject: Add test cases for checking names of training job and feature group X-Git-Tag: 1.1.0~7 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=997cb269b44c65fe2af8364dc44962c7aab427dc;p=aiml-fw%2Fawmf%2Ftm.git Add test cases for checking names of training job and feature group Issue-ID: AIMLFW-13 Change-Id: I33d42463a08a0f0e03ee4aac2a00755da918b261 Signed-off-by: Taewan Kim --- diff --git a/tests/test_tm_apis.py b/tests/test_tm_apis.py index e076146..6bfb8d0 100644 --- a/tests/test_tm_apis.py +++ b/tests/test_tm_apis.py @@ -832,7 +832,7 @@ class Test_create_featuregroup: @patch('trainingmgr.trainingmgr_main.create_dme_filtered_data_job', return_value=the_response1) @patch('trainingmgr.trainingmgr_main.TRAININGMGR_CONFIG_OBJ', return_value = mocked_TRAININGMGR_CONFIG_OBJ) @patch('trainingmgr.trainingmgr_main.delete_feature_group_by_name') - def test_create_featuregroup_2(self, mock1, mock2, mock3,mock4,mock5, mock6): + def test_create_featuregroup_2(self, mock1, mock2, mock3, mock4, mock5, mock6): create_featuregroup_req={ "featureGroupName": "testing_hash", "feature_list": "pdcpBytesDl,pdcpBytesUl", @@ -864,7 +864,7 @@ class Test_create_featuregroup: @patch('trainingmgr.trainingmgr_main.create_dme_filtered_data_job', return_value=the_response2) @patch('trainingmgr.trainingmgr_main.TRAININGMGR_CONFIG_OBJ', return_value = mocked_TRAININGMGR_CONFIG_OBJ) @patch('trainingmgr.trainingmgr_main.delete_feature_group_by_name') - def test_negative_create_featuregroup_1(self, mock1, mock2, mock3,mock4,mock5, mock6): + def test_negative_create_featuregroup_1(self, mock1, mock2, mock3, mock4, mock5, mock6): create_featuregroup_req={ "featureGroupName": "testing_hash", "feature_list": "pdcpBytesDl,pdcpBytesUl", @@ -887,9 +887,10 @@ class Test_create_featuregroup: feature_group_data3=('testing_hash','pdcpBytesDl,pdcpBytesUl','InfluxSource',True,'127.0.0.1','31823','pm-bucket','','','') @patch('trainingmgr.trainingmgr_main.check_feature_group_data', return_value=feature_group_data3) + @patch('trainingmgr.trainingmgr_main.get_feature_group_by_name_db', return_value=False) @patch('trainingmgr.trainingmgr_main.add_featuregroup',side_effect = Exception('Mocked error')) @patch('trainingmgr.trainingmgr_main.delete_feature_group_by_name') - def test_neagtive_create_featuregroup_2(self, mock1, mock2, mock3): + def test_neagtive_create_featuregroup_2(self, mock1, mock2, mock3, mock4): create_featuregroup_req={ "featureGroupName": "testing_hash", "feature_list": "pdcpBytesDl,pdcpBytesUl", @@ -909,6 +910,29 @@ class Test_create_featuregroup: assert response.data==expected_response assert response.status_code ==status.HTTP_500_INTERNAL_SERVER_ERROR, "Return status code not equal" + feature_group_data3=('testing_hash!@','pdcpBytesDl,pdcpBytesUl','InfluxSource',True,'127.0.0.1','31823','pm-bucket','','','') + @patch('trainingmgr.trainingmgr_main.check_feature_group_data', return_value=feature_group_data3) + @patch('trainingmgr.trainingmgr_main.get_feature_group_by_name_db', return_value=True) + def test_neagtive_create_featuregroup_3(self, mock1, mock2): + create_featuregroup_req={ + "featureGroupName": "testing_hash!@", + "feature_list": "pdcpBytesDl,pdcpBytesUl", + "datalake_source": "InfluxSource", + "enable_Dme": False, + "DmeHost": "", + "DmePort": "", + "bucket": "", + "token": "", + "source_name": "", + "dbOrg": "" + } + expected_response=b'{"Exception": "Failed to create the feature group since feature group not valid or already present"}' + response=self.client.post("/featureGroup", data=json.dumps(create_featuregroup_req), + content_type="application/json") + trainingmgr_main.LOGGER.debug(response.data) + assert response.data==expected_response + assert response.status_code==status.HTTP_400_BAD_REQUEST, "Return status code not equal" + class Test_get_feature_group: def setup_method(self): self.client = trainingmgr_main.APP.test_client(self) diff --git a/tests/test_trainingmgr_util.py b/tests/test_trainingmgr_util.py index 8b6335e..13675e7 100644 --- a/tests/test_trainingmgr_util.py +++ b/tests/test_trainingmgr_util.py @@ -41,6 +41,7 @@ from trainingmgr.common.trainingmgr_util import response_for_training, check_key from requests.models import Response from trainingmgr import trainingmgr_main from trainingmgr.common.tmgr_logger import TMLogger +from trainingmgr.common.exceptions_utls import APIException,TMException,DBException trainingmgr_main.LOGGER = pytest.logger class Test_response_for_training: @@ -617,28 +618,32 @@ class Test_validate_trainingjob_name: expected_data = True assert validate_trainingjob_name(trainingjob_name,ps_db_obj) == expected_data,"data not equal" - @patch('trainingmgr.common.trainingmgr_util.get_all_versions_info_by_name', return_value = Exception("Could not get info from db for ")) + @patch('trainingmgr.common.trainingmgr_util.get_all_versions_info_by_name', side_effect = DBException) def test_validate_trainingjob_name_2(self,mock1): trainingjob_name = "usecase8" ps_db_obj = () - expected_data = True try: validate_trainingjob_name(trainingjob_name,ps_db_obj) - assert validate_trainingjob_name(trainingjob_name,ps_db_obj) == expected_data,"data not equal" - assert False - except Exception: - assert True + except DBException as err: + assert 'Could not get info from db for ' + trainingjob_name in str(err) def test_negative_validate_trainingjob_name(self): - trainingjob_name = "usecase8" + short_name = "__" + long_name = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" + not_allowed_symbol_name = "case@#" ps_db_obj = () - expected_data = True try: - validate_trainingjob_name(trainingjob_name,ps_db_obj) - assert validate_trainingjob_name(trainingjob_name,ps_db_obj) == expected_data,"data not equal" - assert False - except Exception: - assert True + validate_trainingjob_name(short_name,ps_db_obj) + except TMException as err: + assert str(err) == "The name of training job is invalid." + try: + validate_trainingjob_name(long_name,ps_db_obj) + except TMException as err: + assert str(err) == "The name of training job is invalid." + try: + validate_trainingjob_name(not_allowed_symbol_name,ps_db_obj) + except TMException as err: + assert str(err) == "The name of training job is invalid." class Test_get_all_pipeline_names_svc: # testing the get_all_pipeline service @@ -700,4 +705,4 @@ class Test_check_feature_group_data: assert check_feature_group_data(json_data)==expected_data, 'data not equal' assert False except: - assert True \ No newline at end of file + assert True