"""Test handler.""" from unittest.mock import MagicMock, patch import index @patch('index.boto3.client') def test_handler(mock_boto3_client): """Test the main handler.""" mock_event = { 'bucket': 'bucket-name', 'key': 'prefix/sme_marketing_data.json', } 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 response = index.handler(mock_event, None) mock_s3_client.get_object.assert_called_with( Bucket=mock_event.get('bucket'), Key=mock_event.get('key') ) assert response == { 'split_complete': True } @patch('index.boto3.client') def test_handler_no_split(mock_boto3_client): """Test the main handler.""" mock_event = { 'bucket': 'bucket-name', 'key': 'prefix/sme_marketing_data_part-1.json', } 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 response = index.handler(mock_event, None) mock_s3_client.get_object.assert_called_with( Bucket=mock_event.get('bucket'), Key=mock_event.get('key') ) assert response == { 'key': 'prefix/sme_marketing_data_part-1.json', 'bucket': 'bucket-name', 'items': [0, 1], }