"""Unit tests for Lambda invoke utils.""" import json import unittest from unittest.mock import patch from lambdacommon.aws import lambdafunction class TestLambdaFunction(unittest.TestCase): """Test LambdaFunction class.""" def setUp(self): """Set up class test.""" self.function_name = 'test-lambda-function' self.lambda_function = lambdafunction.LambdaFunction(self.function_name) @patch('lambdacommon.aws.lambdafunction.LAMBDA_CLIENT') def test_invoke_synchronously(self, mock_lambda_client): """Test mock LambdaFunction.invoke_synchronously.""" mocked_response = { 'StatusCode': 200, 'LogResult': 'lambda-logs', 'Payload': '{"key": "value"}' } mock_lambda_client.invoke.return_value = mocked_response response = self.lambda_function.invoke_synchronously({}) assert response == mocked_response mock_lambda_client.invoke.assert_called_once_with( FunctionName=self.function_name, Payload=json.dumps({}), LogType='None', InvocationType='RequestResponse' ) @patch('lambdacommon.aws.lambdafunction.LAMBDA_CLIENT') def test_invoke_asynchronously(self, mock_lambda_client): """Test mock LambdaFunction.invoke_synchronously.""" mocked_response = { 'StatusCode': 202 } mock_lambda_client.invoke.return_value = mocked_response response = self.lambda_function.invoke_asynchronously({}) assert response['StatusCode'] == mocked_response['StatusCode'] mock_lambda_client.invoke.assert_called_once_with( FunctionName=self.function_name, Payload=json.dumps({}), LogType='None', InvocationType='Event' )