"""Lambda test module.""" from unittest.mock import patch import config from src import app as index @patch('src.app.boto3') @patch('src.app.boto3') def test_handler(mock_boto3_stepfunction, mock_boto3_dynamo): """Test handler function.""" event = { 'eventSource': 'aws:kafka', 'records': { 'event.knrAccountCreation-0': [ { 'topic': 'event.knrAccountCreation', 'partition': 0, 'offset': 4, 'timestamp': 1626669809539, 'timestampType': 'CREATE_TIME', 'value': 'ewogICJhdHRyaWJ1dGVzIjogewogICAgInR5cGUiOiAiQ29udGFjdCIsCiAgICAidXJsIjogIi9zZXJ2aWNlcy9kYXRhL3Y0Mi4wL3NvYmplY3RzL0NvbnRhY3QvMDAzMDEwMDAwMEpQaW1VQUFUIgogIH0sCiAgIklkIjogIjAwMzAxMDAwMDBKUGltVUFBVCIsCiAgIkZpcnN0TmFtZSI6ICJRQUxUXzlmMGNlNjc4LTEyNmEtNGVkOS1hIiwKICAiTGFzdE5hbWUiOiAiVGVzdFV2YXJvdjMzNTU2NjMiLAogICJFbWFpbCI6ICJidXZhcm92KzEyOTg2NDlAdGhlb3JjaGFyZC5jb20iLAogICJSb2xlX19jIjogIkFydGlzdCBvciBCYW5kIiwKICAiQWNjb3VudCI6IHsKICAgICJhdHRyaWJ1dGVzIjogewogICAgICAidHlwZSI6ICJBY2NvdW50IiwKICAgICAgInVybCI6ICIvc2VydmljZXMvZGF0YS92NDIuMC9zb2JqZWN0cy9BY2NvdW50LzAwMTAxMDAwMDBOdmd4cEFBQiIKICAgIH0sCiAgICAiTmFtZSI6ICJVdmFDb3JwMzg3ODk4MiIsCiAgICAiU3BvdGlmeVVybF9fYyI6ICJodHRwczovL29wZW4uc3BvdGlmeS5jb20vYXJ0aXN0LzRvRDRQaEpOOTZ1cXNNUGFyZTk5QkwiLAogICAgIk9yY2hhcmRfTGVhZF9JZF9fYyI6ICJmNDQzNGJjMDVkNzVlNjJlZWFlOWUxNzNkNjVmN2RkNWNlNmVkMjhhMjcyM2JmOTcyNjVkMTRmZDhjY2ExYzMzIiwKICAgICJTb3VuZGNsb3VkVXJsX19jIjogbnVsbCwKICAgICJUaWt0b2tVcmxfX2MiOiAiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQzZmYVBiZlhVenhVT1BaeXQ2YUllUHciLAogICAgIkluc3RhZ3JhbVVybF9fYyI6ICJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2xhenlqYW5lbXVzaWMvP2hsPWVuIiwKICAgICJEZWV6ZXJVcmxfX2MiOiBudWxsLAogICAgIllvdXR1YmVVcmxfX2MiOiAiaHR0cHM6Ly93d3cueW91dHViZS5jb20vY2hhbm5lbC9VQzZmYVBiZlhVenhVT1BaeXQ2YUllUHciLAogICAgIkFtYXpvbk11c2ljVXJsX19jIjogbnVsbCwKICAgICJUd2l0dGVyVXJsX19jIjogImh0dHBzOi8vdHdpdHRlci5jb20vbGF6eWphbmVtdXNpYz9sYW5nPWVuIiwKICAgICJPdGhlclVybF9fYyI6IG51bGwsCiAgICAiRmFjZWJvb2tVcmxfX2MiOiAiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2xhenlqYW5lbXVzaWMvIiwKICAgICJMZWFkU2NvcmVfX2MiOiAiQXBwcm92ZSIsCiAgICAiQ3VycmVuY3lfX2MiOiAiVVNEIiwKICAgICJTaWduaW5nRW50aXR5X19jIjogIkdCUiIsCiAgICAiRXhpc3RpbmdMYWJlbFBhcnRpY2lwYW50c19fYyI6IG51bGwKICB9LAogICJMYW5ndWFnZV9fYyI6ICJlbiIsCiAgIkV4dGVybmFsVGVzdF9fYyI6IGZhbHNlLAogICJDb3JyZWxhdGlvbklkX19jIjogIjFjNzdlODg1LTYzZGUtNDdjOS05YzE5LTlhYTg4NzJlMGIyZCIsCiAgIlZvdWNoZXJDb2RlX19jIjogIm5ac3E4TURWIiwKICAiVm91Y2hlckNvZGVPd25lcl9fYyI6ICJidXZhcm92QHRoZW9yY2hhcmQuY29tIiwKICAiT3JjaGFyZFN5bmNJZF9fYyI6ICIyOTYxIiwKICAiQ29uc3VsdGFudF9fYyI6IGZhbHNlLAogICJNYWlsaW5nQ291bnRyeSI6ICJVU0EiCn0=' # noqa } ] } } config.STEP_FN_ARN = 'test-step-function-arn' mock_boto3_dynamo.client().get_item.return_value = {} execute_response = {'step_fn': 'result'} mock_boto3_stepfunction.client().start_execution.return_value = execute_response result = index.handler(event, None) assert result == {'status': {4: 'success'}} @patch('src.app.Producer') @patch('src.app.boto3') def test_handler_error(botoMock, kafkaProducerMock): """Test handler function.""" event = { 'eventSource': 'aws:kafka', 'records': { 'event.gdaApproval-0': [ { 'topic': 'event.knrAccountCreation', 'partition': 0, 'offset': 4, 'timestamp': 1626669809539, 'timestampType': 'CREATE_TIME', 'value': 'foo' } ] } } config.STEP_FN_ARN = 'test-step-function-arn' execute_response = {'step_fn': 'result'} botoMock.client().start_execution.return_value = execute_response result = index.handler(event, None) assert result == {'status': {4: 'failed'}} kafkaProducerMock().produce.assert_called() kafkaProducerMock().flush.assert_called()