"""Test vendor_mapping helper.""" from unittest.mock import MagicMock, patch from common.schemas.state_machine_schema import StateMachineSchema from src.constants.snowflake_queries import GET_PARENT_REP_OWNER_MAPPING from src.constants.sql_queries import ( INSERT_INTO_INBOUND_MAJOR_LABEL_MAPPING, SELECT_FROM_INBOUND_MAJOR_LABEL_MAPPING_BY_CODE) from src.helpers.vendor_mapping import get_parent_repertoire_owner_mapping, \ get_vendor_and_subaccount_for_rep_owner_code_rows, \ insert_vendor_and_subaccount_mapping @patch('src.helpers.vendor_mapping.execute_mysql_query') @patch('src.helpers.vendor_mapping.config') def test_get_vendor_and_subaccount_for_rep_owner_code_rows( mock_config, mock_run_rds_query, mock_event): """Test get_vendor_and_subaccount_for_rep_owner_code_rows.""" sm_context = StateMachineSchema().load(mock_event) mock_logger = MagicMock() # 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.RDS_PASSWORD = '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, sm_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, ('0207', '0207') ) @patch('src.helpers.vendor_mapping.execute_mysql_query') @patch('src.helpers.vendor_mapping.config') def test_insert_vendor_and_subaccount_mapping( mock_config, mock_run_rds_query, mock_event): """Test insert_vendor_and_subaccount_mapping.""" sm_context = StateMachineSchema().load(mock_event) mock_logger = MagicMock() # 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.RDS_PASSWORD = 'mock_password' # Call the function insert_vendor_and_subaccount_mapping( mock_logger, 123, 345, sm_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, '0207', '0207') ) @patch('src.helpers.vendor_mapping.execute_snowflake_query') def test_get_parent_repertoire_owner_mapping(mock_execute_query, mock_event): """Test get_parent_repertoire_owner_mapping with successful 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 sm_context = StateMachineSchema().load(mock_event) mock_logger = MagicMock() sm_context.product.repertoire_owner_code = 'REP_CODE' # Call the function result = get_parent_repertoire_owner_mapping(mock_logger, sm_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'}]