Source code for tests.aws_tools_tests.test_lambda_handler

from __future__ import absolute_import, unicode_literals, print_function
import io
import json
import zipfile
from unittest import TestCase
from libraries.aws_tools.lambda_handler import LambdaHandler
from moto import mock_lambda


@mock_lambda
[docs]class LambdaHandlerTests(TestCase):
[docs] def setUp(self): """Runs before each test.""" self.handler = LambdaHandler() self.init_lambda(""" def lambda_handler(event, context): return event """)
[docs] def init_lambda(self, fx): zip_output = io.BytesIO() zip_file = zipfile.ZipFile(zip_output, 'w', zipfile.ZIP_DEFLATED) zip_file.writestr('lambda_function.zip', fx) zip_file.close() zip_output.seek(0) self.handler.client.create_function( FunctionName='testFunction', Runtime='python2.7', Role='test-iam-role', Handler='lambda_function.handler', Code={ 'ZipFile': zip_output.read() }, Description='test lambda function', Timeout=3, MemorySize=128, Publish=True, )
[docs] def test_setup_resources(self): my_handler = LambdaHandler(aws_access_key_id='access_key', aws_secret_access_key='secret_key', aws_region_name='us-west-1') self.assertEqual(my_handler.aws_access_key_id, 'access_key') self.assertEqual(my_handler.aws_secret_access_key, 'secret_key') self.assertEqual(my_handler.aws_region_name, 'us-west-1')
[docs] def test_invoke(self): result = self.handler.invoke('testFunction', {'test': 123}) self.assertEqual(result["StatusCode"], 202) self.assertEqual(json.loads(result['Payload'].read().decode('utf-8')), {'test': 123})