From: rajdeep11 Date: Fri, 12 May 2023 06:35:35 +0000 (+0530) Subject: Unit test for List_feature_group X-Git-Tag: 1.1.0~12 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=562592fbca63f8dab2917ae109ff20a491dc21d9;p=aiml-fw%2Fawmf%2Ftm.git Unit test for List_feature_group Issue-Id: AIMLFW-45 Change-Id: I0f8d80d212eb81a0a6ffcc7cd212ee19756fac1d Signed-off-by: rajdeep11 --- diff --git a/tests/test_common_db_fun.py b/tests/test_common_db_fun.py index d5740cd..8a85388 100644 --- a/tests/test_common_db_fun.py +++ b/tests/test_common_db_fun.py @@ -29,7 +29,7 @@ from trainingmgr.db.common_db_fun import get_data_extraction_in_progress_trainin get_all_versions_info_by_name, get_all_distinct_trainingjobs, \ get_all_version_num_by_trainingjob_name, update_model_download_url, \ add_update_trainingjob, get_all_jobs_latest_status_version, get_info_of_latest_version, \ - add_featuregroup + add_featuregroup, get_feature_group_by_name_db, get_feature_groups_db mimic_db = { "usecase_name": "Tester", @@ -529,4 +529,39 @@ class Test_Common_Db_Fun: assert False except Exception as err: fxn_name = "add_featuregroup" + assert str(err)=="Failed to execute query in {}DB Error".format(fxn_name) + + def test_get_feature_groups_db(self): + checker=Check() + db_obj = db_helper_fg([['featureGroupName']], check_success_obj=checker) + out = get_feature_groups_db(db_obj) + assert out ==[['testing_hash']] + + def test_negative_get_feature_groups_db(self): + checker= Check() + try: + db_obj= db_helper_fg([[None]], raise_exception=True, check_success_obj=checker) + out = get_feature_groups_db(db_obj) + assert False + except Exception as err: + fxn_name="get_feature_groups" + assert str(err) == "Failed to execute query in {}DB Error".format(fxn_name) + + + def test_get_feature_group_by_name_db(self): + checker=Check() + featuregroup_name='tester' + db_obj = db_helper_fg([['feature_list'], ['datalake_source']], check_success_obj=checker) + out = get_feature_group_by_name_db(db_obj, featuregroup_name) + assert out != None, 'get_feature_group_by_name_db FAILED' + + def test_negative_get_feature_group_by_name_db(self): + checker=Check() + featuregroup_name='tester' + try: + db_obj = db_helper_fg([['feature_list'], ['datalake_source']],raise_exception=True, check_success_obj=checker) + out = get_feature_group_by_name_db(db_obj, featuregroup_name) + assert False + except Exception as err: + fxn_name="get_feature_groups" assert str(err)=="Failed to execute query in {}DB Error".format(fxn_name) \ No newline at end of file diff --git a/tests/test_tm_apis.py b/tests/test_tm_apis.py index 802cc8f..0557210 100644 --- a/tests/test_tm_apis.py +++ b/tests/test_tm_apis.py @@ -33,6 +33,7 @@ from threading import Lock from trainingmgr import trainingmgr_main from trainingmgr.common.tmgr_logger import TMLogger from trainingmgr.common.trainingmgr_config import TrainingMgrConfig +from trainingmgr.common.exceptions_utls import DBException trainingmgr_main.LOGGER = pytest.logger trainingmgr_main.LOCK = Lock() trainingmgr_main.DATAEXTRACTION_JOBS_CACHE = {} @@ -904,3 +905,54 @@ class Test_create_featuregroup: trainingmgr_main.LOGGER.debug(response.data) assert response.data==expected_response assert response.status_code ==status.HTTP_500_INTERNAL_SERVER_ERROR, "Return status code not equal" + +class Test_get_feature_group: + def setup_method(self): + self.client = trainingmgr_main.APP.test_client(self) + self.logger = trainingmgr_main.LOGGER + + result=[('testing', '', 'InfluxSource', True, '21.0.0.21', '12345', '', '', '', '')] + @patch('trainingmgr.trainingmgr_main.get_feature_groups_db', return_value=result) + def test_get_feature_group(self,mock1): + expected_data=b'{"featuregroups": [{"featuregroup_name": "testing", "features": "", "datalake": "InfluxSource", "dme": true}]}' + response=self.client.get('/featureGroup') + assert response.status_code==200, "status code returned is not equal" + assert response.data==expected_data + + @patch('trainingmgr.trainingmgr_main.get_feature_groups_db', side_effect=DBException('Failed to execute query in get_feature_groupsDB ERROR')) + def test_negative_get_feature_group(self, mock1): + expected_data=b'{"Exception": "Failed to execute query in get_feature_groupsDB ERROR"}' + response=self.client.get('/featureGroup') + assert response.status_code== status.HTTP_500_INTERNAL_SERVER_ERROR, "status code is not equal" + assert response.data == expected_data + +class Test_get_feature_group_by_name: + def setup_method(self): + self.client = trainingmgr_main.APP.test_client(self) + self.logger = trainingmgr_main.LOGGER + + result=[('testing', '', 'InfluxSource', True, '21.0.0.21', '12345', '', '', '', '')] + @patch('trainingmgr.trainingmgr_main.get_feature_group_by_name_db', return_value=result) + def test_get_feature_group_by_name(self, mock1): + expected_data=b'{"featuregroup": [{"featuregroup_name": "testing", "features": [""], "datalake": "InfluxSource", "dme": true, "dme_host": "21.0.0.21", "dme_port": "12345", "bucket": "", "token": "", "source_name": "", "db_org": ""}]}' + fg_name='testing' + response=self.client.get('/featureGroup/{}'.format(fg_name)) + assert response.status_code == 200 , "status code is not equal" + assert response.data == expected_data + + @patch('trainingmgr.trainingmgr_main.get_feature_group_by_name_db', return_value=None) + def test_negative_get_feature_group_by_name(self, mock1): + expected_data=b'{"Exception": "Failed to fetch feature group info from db"}' + fg_name='testing' + response=self.client.get('/featureGroup/{}'.format(fg_name)) + print(response.data) + assert response.status_code == 404 , "status code is not equal" + assert response.data == expected_data + + @patch('trainingmgr.trainingmgr_main.get_feature_group_by_name_db', side_effect=DBException("Failed to execute query in get_feature_groupsDB ERROR")) + def test_negative_get_feature_group_by_name_2(self, mock1): + expected_data=b'{"Exception": "Failed to execute query in get_feature_groupsDB ERROR"}' + fg_name='testing' + response=self.client.get('/featureGroup/{}'.format(fg_name)) + assert response.status_code == 500 , "status code is not equal" + assert response.data == expected_data \ No newline at end of file