"""Test handler.""" from unittest.mock import MagicMock, patch import index @patch('index.logger') @patch('index.get_product_metadata') @patch('index.boto3.client') def test_handler( mock_boto3_client, mock_get_product_metadata, mock_current_logger): """Test the main handler.""" mock_logger = MagicMock(name='info') mock_current_logger.return_value = mock_logger mock_event = { 'bucket': 'bucket-name', 'key': 'prefix/sme_marketing_data.json', 'item_index': 0, } mock_s3_client = MagicMock(name='get_object') mock_fileobject = MagicMock(name='read') mock_fileobject.read.return_value = """[ {"UPC": "1234567890123", "MarketingBlurb": "Some content"}, {"UPC": "1234567890456", "MarketingBlurb": "Some other content"} ]""" mock_s3_client.get_object.return_value = { 'Body': mock_fileobject } mock_boto3_client.return_value = mock_s3_client mock_get_product_metadata.return_value = {'productId': 234324} response = index.handler(mock_event, None) assert response == { 'product_id': 234324, 'status': None, 'original_release_date': None, 'publish_status': None, 'main_artist': None, 'release_name': None, 'digital_title_suppl': None, 'product_number': None, 'upc': '1234567890123', 'release_format': None, 'display_config': None, 'media_format': None, 'local_genre': None, 'subgenre': None, 'imprint': None, 'artist_country': None, 'sales_start_date': None, 'preorder_date': None, 'pitch_deadline': None, 'internal_notes': None, 'marketing_blurb': 'Some content', 'global_mkt_highlights': None, 'territory_restrictions': None, 'delivery_history': None, 'territory_mkt_highlights': None, 'spotify_artist_uri': None, 'apple_artist_id': None, 'apple_id': None, 'spotify_store_link': None, 'deezer_store_link': None, 'amz_asin_link': None, 'digital_asin': None, 'created': None, }