def test_lambda_handler_sns( self, mock_lambda_step_handler, mock_lambda_api_handler, mock_lambda_sns_handler, mock_lambda_sqs_handler, mock_lambda_timer_handler, mock_lambda_kinesis_handler, mock_lambda_dynamodb_handler): lambda_handler( { 'Records': [{ 'eventSource': 'aws:sns', 'Sns': { 'Message': 'message' } }] }, 'a') self.assertFalse(mock_lambda_kinesis_handler.called) self.assertFalse(mock_lambda_timer_handler.called) self.assertFalse(mock_lambda_dynamodb_handler.called) mock_lambda_sns_handler.assert_called_with({ 'eventSource': 'aws:sns', 'Sns': { 'Message': 'message' } }) self.assertFalse(mock_lambda_sqs_handler.called) self.assertFalse(mock_lambda_api_handler.called) self.assertFalse(mock_lambda_step_handler.called)
def test_lambda_handler_api(self, mock_lambda_api_handler, mock_lambda_sns_handler, mock_lambda_timer_handler, mock_lambda_kinesis_handler, mock_lambda_dynamodb_handler): lambda_handler({'foo': 'bar'}, 'a') self.assertFalse(mock_lambda_kinesis_handler.called) self.assertFalse(mock_lambda_timer_handler.called) self.assertFalse(mock_lambda_dynamodb_handler.called) self.assertFalse(mock_lambda_sns_handler.called) mock_lambda_api_handler.assert_called_with({'foo': 'bar'})
def test_lambda_handler_timer(self, mock_lambda_api_handler, mock_lambda_sns_handler, mock_lambda_timer_handler, mock_lambda_kinesis_handler, mock_lambda_dynamodb_handler): lambda_handler({'source': 'aws.events'}, 'a') self.assertFalse(mock_lambda_kinesis_handler.called) mock_lambda_timer_handler.assert_called_with() self.assertFalse(mock_lambda_dynamodb_handler.called) self.assertFalse(mock_lambda_sns_handler.called) self.assertFalse(mock_lambda_api_handler.called)
def test_lambda_handler_dynamodb(self, mock_lambda_api_handler, mock_lambda_sns_handler, mock_lambda_timer_handler, mock_lambda_kinesis_handler, mock_lambda_dynamodb_handler): lambda_handler({'Records': [{'dynamodb': {}}]}, 'a') self.assertFalse(mock_lambda_kinesis_handler.called) self.assertFalse(mock_lambda_timer_handler.called) mock_lambda_dynamodb_handler.assert_called_with( {'Records': [{ 'dynamodb': {} }]}) self.assertFalse(mock_lambda_sns_handler.called) self.assertFalse(mock_lambda_api_handler.called)
def test_lambda_handler_kinesis(self, mock_lambda_step_handler, mock_lambda_api_handler, mock_lambda_sns_handler, mock_lambda_timer_handler, mock_lambda_kinesis_handler, mock_lambda_dynamodb_handler): lambda_handler({'Records': [{'kinesis': 'abc123'}]}, 'a') mock_lambda_kinesis_handler.assert_called_with({'Records': [{'kinesis': 'abc123'}]}) self.assertFalse(mock_lambda_timer_handler.called) self.assertFalse(mock_lambda_dynamodb_handler.called) self.assertFalse(mock_lambda_sns_handler.called) self.assertFalse(mock_lambda_api_handler.called) self.assertFalse(mock_lambda_step_handler.called)
def test_lambda_handler_step(self, mock_lambda_step_handler, mock_lambda_api_handler, mock_lambda_sns_handler, mock_lambda_sqs_handler, mock_lambda_timer_handler, mock_lambda_kinesis_handler, mock_lambda_dynamodb_handler): lambda_handler({'step_function': True, 'foo': 'bar'}, 'a') self.assertFalse(mock_lambda_kinesis_handler.called) self.assertFalse(mock_lambda_timer_handler.called) self.assertFalse(mock_lambda_dynamodb_handler.called) self.assertFalse(mock_lambda_sns_handler.called) self.assertFalse(mock_lambda_sqs_handler.called) self.assertFalse(mock_lambda_api_handler.called) mock_lambda_step_handler.assert_called_with({'step_function': True, 'foo': 'bar'})
for sqs_message in sqs_messages: body = sqs_message[AWS_SQS.MESSAGE.Body] tmp = { AWS_LAMBDA.EventSource: AWS_LAMBDA.EVENT_SOURCE.SQS, AWS_LAMBDA.SQS_RECORD.BODY: body } lambda_event[AWS_LAMBDA.Records].append(tmp) # and call the handler with the records if args.lambda_command: subprocess.call([ '/bin/bash', '-c', args.lambda_command + " '" + json.dumps(lambda_event) + "'" ]) else: lambda_handler(lambda_event, lambda_context) # after processing, the SQS messages need to be deleted response = sqs_conn.delete_message_batch( QueueUrl=sqs_queue_url, Entries=[{ AWS_SQS.MESSAGE.Id: str(i), AWS_SQS.MESSAGE.ReceiptHandle: sqs_message[AWS_SQS.MESSAGE.ReceiptHandle] } for i, sqs_message in enumerate(sqs_messages)]) if args.run_kinesis_lambda and kinesis_conn: # run the kinesis handler for i, shard_it in enumerate(shard_its):