"""Test vendor_mapping helper.""" from unittest.mock import patch from constants.snowflake_queries import GET_PARENT_REP_OWNER_MAPPING from constants.sql_queries import ( INSERT_INTO_INBOUND_MAJOR_LABEL_MAPPING, SELECT_FROM_INBOUND_MAJOR_LABEL_MAPPING_BY_CODE) from ddex_ingester_common.schemas.s3_schema import S3Schema from helpers.vendor_mapping import ( get_parent_repertoire_owner_mapping, get_vendor_and_subaccount_for_rep_owner_code_rows, insert_vendor_and_subaccount_mapping) @patch('index.logger') @patch('helpers.vendor_mapping.run_rds_query') @patch('helpers.vendor_mapping.config') def test_get_vendor_and_subaccount_for_rep_owner_code_rows( mock_config, mock_run_rds_query, mock_logger, s3_ddex): """Test get_vendor_and_subaccount_for_rep_owner_code_rows.""" s3_context = S3Schema().load(s3_ddex) # Mock the config values mock_config.RDS_HOST = 'mock_host' mock_config.RDS_DB_NAME = 'mock_db' mock_config.RDS_RW_USER = 'mock_user' mock_config.secrets_manager_client.get_cred.return_value = 'mock_password' # Mock the return value of run_rds_query mock_run_rds_query.return_value = [{'vendor_id': '123', 'subaccount_id': '345'}] # Call the function result = get_vendor_and_subaccount_for_rep_owner_code_rows(mock_logger, s3_context) # Assertions assert result == [{'vendor_id': '123', 'subaccount_id': '345'}] mock_run_rds_query.assert_called_once_with( mock_logger, 'mock_host', 'mock_db', 'mock_user', 'mock_password', SELECT_FROM_INBOUND_MAJOR_LABEL_MAPPING_BY_CODE, ('A123', 'A123') ) @patch('index.logger') @patch('helpers.vendor_mapping.run_rds_query') @patch('helpers.vendor_mapping.config') def test_insert_vendor_and_subaccount_mapping( mock_config, mock_run_rds_query, mock_logger, s3_ddex): """Test insert_vendor_and_subaccount_mapping.""" s3_context = S3Schema().load(s3_ddex) # Mock the config values mock_config.RDS_HOST = 'mock_host' mock_config.RDS_DB_NAME = 'mock_db' mock_config.RDS_RW_USER = 'mock_user' mock_config.secrets_manager_client.get_cred.return_value = 'mock_password' # Call the function insert_vendor_and_subaccount_mapping( mock_logger, 123, 345, s3_context) mock_run_rds_query.assert_called_once_with( mock_logger, 'mock_host', 'mock_db', 'mock_user', 'mock_password', INSERT_INTO_INBOUND_MAJOR_LABEL_MAPPING, (123, 345, 'A123', 'A123') ) @patch('helpers.vendor_mapping.execute_snowflake_query') @patch('index.logger') def test_get_parent_repertoire_owner_mapping(mock_logger, mock_execute_query, s3_ddex): """Test get_parent_repertoire_owner_mapping with successful query execution.""" # Mock the return value of execute_snowflake_query mock_execute_query.return_value = [{'REP_OWNER_PARENT_CD': 'CODE1', 'REP_OWNER_PARENT_NM': 'Name1'}] # Create a mock s3_context s3_context = S3Schema().load(s3_ddex) s3_context.product.repertoire_owner_code = 'REP_CODE' # Call the function result = get_parent_repertoire_owner_mapping(mock_logger, s3_context) # Assertions mock_execute_query.assert_called_once_with( GET_PARENT_REP_OWNER_MAPPING, {'rep_owner_key': 'REP_CODE'} ) assert result == [{'REP_OWNER_PARENT_CD': 'CODE1', 'REP_OWNER_PARENT_NM': 'Name1'}]