"""Lambda conftest module.""" import pytest import pandas as pd @pytest.fixture def mock_orchard_license_data_json(): """Mock transformed data's list of dictionary.""" return [ { 'hfa_agreement_code': 'SSA', 'manufacturer_number': 'M16106', 'transaction_date': 20220501, 'manufacturer_request_number': 1, 'label_name': 'Test Label 1', 'isrc_code': 'ABC12345', 'playing_time_minutes': 2, 'playing_time_seconds': 19, 'artist': 'Test Artist 1', 'song_title': 'Test Track 1', 'aka_song_title': 'Test Track 1', 'iswc_code': '', 'hfa_song_code': '', 'composers': 'Test Writer 1,Test Writer 3', 'publisher_name': 'Test Publisher 1', 'hfa_publisher_number': '', 'exact_per_publisher_share': '', 'catalog_number': 'VCN1234', 'album_title': 'Test Product 1', 'upc_code': '11789', 'configuration_codes': 'SP', 'license_type': 'G', 'server_fixation_date': 20220513, 'rate_code': 'S', 'hfa_output_1': '', 'hfa_output_2': '', 'hfa_output_3': '', 'hfa_license_number_direct_deal_reference_id': '', 'hfa_request_process_code_1': '', 'hfa_request_process_code_2': '', 'hfa_request_process_code_3': '', 'hfa_request_process_code_4': '', 'licensed_status_code': '', 'hfa_output_field': '', 'publisher_status': '', 'total_hfa_licensed_share': '', 'user_defined_1': 'N2', 'user_defined_2_track_id': '1', 'user_defined_3_copyright_office_request': 'FALSE', 'user_defined_4_distribution_date': '20220527', 'user_defined_5_track_publisher_id': '1', 'user_defined_6': True, 'user_defined_7_tr_code': '', 'user_defined_8_priority_code': '3', 'user_defined_9_pid': '' }, { 'hfa_agreement_code': 'SSA', 'manufacturer_number': 'M16106', 'transaction_date': 20220501, 'manufacturer_request_number': 2, 'label_name': 'Test Label 2', 'isrc_code': 'XYZ1234', 'playing_time_minutes': 1, 'playing_time_seconds': 47, 'artist': 'Test Artist 2', 'song_title': 'Test Track 2', 'aka_song_title': 'Test Track 2', 'iswc_code': '', 'hfa_song_code': '', 'composers': 'Test Writer 2', 'publisher_name': 'Test Publisher 2', 'hfa_publisher_number': '', 'exact_per_publisher_share': '', 'catalog_number': 'VCN234567', 'album_title': 'Test Product 2', 'upc_code': '1234567', 'configuration_codes': 'SP', 'license_type': 'G', 'server_fixation_date': 20220513, 'rate_code': 'S', 'hfa_output_1': '', 'hfa_output_2': '', 'hfa_output_3': '', 'hfa_license_number_direct_deal_reference_id': '', 'hfa_request_process_code_1': '', 'hfa_request_process_code_2': '', 'hfa_request_process_code_3': '', 'hfa_request_process_code_4': '', 'licensed_status_code': '', 'hfa_output_field': '', 'publisher_status': '', 'total_hfa_licensed_share': '', 'user_defined_1': 'N2', 'user_defined_2_track_id': '2', 'user_defined_3_copyright_office_request': 'FALSE', 'user_defined_4_distribution_date': '20220527', 'user_defined_5_track_publisher_id': '2', 'user_defined_6': True, 'user_defined_7_tr_code': '', 'user_defined_8_priority_code': '3', 'user_defined_9_pid': '' }, { 'hfa_agreement_code': 'SSA', 'manufacturer_number': 'M16106', 'transaction_date': 20220501, 'manufacturer_request_number': 2, 'label_name': 'Test Label 2', 'isrc_code': 'XYZ1234', 'playing_time_minutes': 1, 'playing_time_seconds': 47, 'artist': 'Test Artist 2', 'song_title': 'Test Track 2', 'aka_song_title': 'Test Track 2', 'iswc_code': '', 'hfa_song_code': '', 'composers': 'Test Writer 2', 'publisher_name': 'Test Publisher 3', 'hfa_publisher_number': '', 'exact_per_publisher_share': '', 'catalog_number': 'VCN234567', 'album_title': 'Test Product 2', 'upc_code': '1234567', 'configuration_codes': 'SP', 'license_type': 'G', 'server_fixation_date': 20220513, 'rate_code': 'S', 'hfa_output_1': '', 'hfa_output_2': '', 'hfa_output_3': '', 'hfa_license_number_direct_deal_reference_id': '', 'hfa_request_process_code_1': '', 'hfa_request_process_code_2': '', 'hfa_request_process_code_3': '', 'hfa_request_process_code_4': '', 'licensed_status_code': '', 'hfa_output_field': '', 'publisher_status': '', 'total_hfa_licensed_share': '', 'user_defined_1': 'N2', 'user_defined_2_track_id': '2', 'user_defined_3_copyright_office_request': 'FALSE', 'user_defined_4_distribution_date': '20220527', 'user_defined_5_track_publisher_id': '3', 'user_defined_6': True, 'user_defined_7_tr_code': '', 'user_defined_8_priority_code': '3', 'user_defined_9_pid': '' }, { 'hfa_agreement_code': 'RGT', 'manufacturer_number': 'M16106', 'transaction_date': 20220501, 'manufacturer_request_number': 3, 'label_name': 'Test Label 3', 'isrc_code': 'DEF123', 'playing_time_minutes': 2, 'playing_time_seconds': 19, 'artist': 'Test Artist 3', 'song_title': 'Test Track 3', 'aka_song_title': 'Test Track 3', 'iswc_code': '', 'hfa_song_code': '', 'composers': 'Test Writer 3', 'publisher_name': '', 'hfa_publisher_number': '', 'exact_per_publisher_share': '', 'catalog_number': 'VCN3', 'album_title': 'Test Product 3', 'upc_code': '123', 'configuration_codes': 'RT', 'license_type': 'G', 'server_fixation_date': 20220513, 'rate_code': 'Y', 'hfa_output_1': '', 'hfa_output_2': '', 'hfa_output_3': '', 'hfa_license_number_direct_deal_reference_id': '', 'hfa_request_process_code_1': '', 'hfa_request_process_code_2': '', 'hfa_request_process_code_3': '', 'hfa_request_process_code_4': '', 'licensed_status_code': '', 'hfa_output_field': '', 'publisher_status': '', 'total_hfa_licensed_share': '', 'user_defined_1': 'N2', 'user_defined_2_track_id': '3', 'user_defined_3_copyright_office_request': 'FALSE', 'user_defined_4_distribution_date': '20220527', 'user_defined_5_track_publisher_id': '', 'user_defined_6': False, 'user_defined_7_tr_code': '', 'user_defined_8_priority_code': '3', 'user_defined_9_pid': '' } ] @pytest.fixture def mock_orchard_license_data_df(mock_orchard_license_data_json): """Mock transformed dataframe.""" return pd.DataFrame.from_records(mock_orchard_license_data_json) @pytest.fixture(autouse=True) def mock_configs(mocker): """Mock the config dependencies for testing purposes in the 'src.app' module.""" return { 'environment': mocker.patch('src.app.ENVIRONMENT', 'test'), 's3_bucket_name': mocker.patch('src.app.S3_BUCKET_NAME', 'mock-bucket'), 's3_request_dir': mocker.patch('src.app.S3_REQUEST_FILE_DIR', 'requests/'), 'ftp_path': mocker.patch('src.app.FTP_PATH', '/test'), 'publishing_db_cred': mocker.patch('src.app.PB_DB_CREDENTIALS'), 'success_email_recipients': mocker.patch('src.app.SUCCESS_EMAIL_RECIPIENTS', ['test@example.com']), 'email_recipients': mocker.patch('src.app.EMAIL_RECIPIENTS', ['test@example.com']), 'email_sender': mocker.patch('src.app.EMAIL_SENDER', 'sender@example.com'), } @pytest.fixture def mock_dependencies(mocker): """Mock the dependencies for testing purposes in the 'src.app' module.""" return { 'temp_directory': mocker.patch('src.app.tempfile.TemporaryDirectory'), 'os_path_join': mocker.patch('src.app.os.path.join'), 'download_file_from_s3': mocker.patch('src.app.download_file_from_s3'), 'create_zip': mocker.patch('src.app.create_zip'), 'transform_license_data': mocker.patch('src.app.transform_license_data'), 'upload_file_to_ftp': mocker.patch('src.app.upload_file_to_ftp'), 'update_hfa_orchard_track_licenses_state': mocker.patch('src.app.update_hfa_orchard_track_licenses_state'), 'insert_hfa_license_request': mocker.patch('src.app.insert_hfa_license_request'), 'send_success_email': mocker.patch('src.app.send_success_email'), 'send_error_email': mocker.patch('src.app.ses.send_email'), 'upload_zip_to_s3': mocker.patch('src.app.upload_zip_to_s3'), 'capture_exception': mocker.patch('src.app.capture_exception'), 'logger': mocker.patch('src.app.logger'), }