def test_invoke_lambda_function(self, session): z = Zappa(session) z.credentials_arn = 'arn:aws:iam::724336686645:role/ZappaLambdaExecution' function_name = 'django-helloworld-unicode' payload = '{"event": "hello"}' response = z.invoke_lambda_function(function_name, payload)
def test_rollback_lambda_function_version(self, session): z = Zappa(session) z.credentials_arn = 'arn:aws:iam::724336686645:role/ZappaLambdaExecution' function_name = 'django-helloworld-unicode' too_many_versions = z.rollback_lambda_function_version(function_name, 99999) self.assertFalse(too_many_versions) function_arn = z.rollback_lambda_function_version(function_name, 1)
def test_create_api_gateway_routes(self, session): z = Zappa(session) z.parameter_depth = 1 z.integration_response_codes = [200] z.method_response_codes = [200] z.http_methods = ['GET'] z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' lambda_arn = 'arn:aws:lambda:us-east-1:12345:function:helloworld' z.create_api_gateway_routes(lambda_arn)
def test_create_api_gateway_routes(self, session): z = Zappa(session) z.parameter_depth = 1 z.integration_response_codes = [200] z.method_response_codes = [200] z.http_methods = ['GET'] z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' lambda_arn = 'arn:aws:lambda:us-east-1:12345:function:helloworld' with mock.patch('time.time', return_value=123.456): api_id = z.create_api_gateway_routes(lambda_arn) self.assertEqual(api_id, 'j27idab94h')
def test_deploy_api_gateway(self, session): z = Zappa(session) z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' z.parameter_depth = 1 z.integration_response_codes = [200] z.method_response_codes = [200] z.http_methods = ['GET'] lambda_arn = 'arn:aws:lambda:us-east-1:12345:function:django-helloworld-unicode' api_id = z.create_api_gateway_routes(lambda_arn) endpoint_url = z.deploy_api_gateway(api_id, "test_stage")
def test_create_lambda_function(self, session): bucket_name = 'lmbda' zip_path = 'Spheres-dev-1454694878.zip' z = Zappa(session) z.aws_region = 'us-east-1' z.load_credentials(session) z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' arn = z.create_lambda_function(bucket=bucket_name, s3_key=zip_path, function_name='test_lmbda_function55', handler='runme.lambda_handler') arn = z.update_lambda_function( bucket=bucket_name, s3_key=zip_path, function_name='test_lmbda_function55', )
def test_create_lambda_function(self, session): bucket_name = 'lmbda' zip_path = 'Spheres-dev-1454694878.zip' z = Zappa(session) z.aws_region = 'us-east-1' z.load_credentials(session) z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' arn = z.create_lambda_function( bucket=bucket_name, s3_key=zip_path, function_name='test_lmbda_function55', handler='runme.lambda_handler' ) arn = z.update_lambda_function( bucket=bucket_name, s3_key=zip_path, function_name='test_lmbda_function55', )
def test_fetch_logs(self, session): z = Zappa(session) z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' events = z.fetch_logs('Spheres-demonstration') self.assertTrue(events is not None)
def test_get_api_url(self, session): z = Zappa(session) z.credentials_arn = 'arn:aws:iam::724336686645:role/ZappaLambdaExecution' url = z.get_api_url('Spheres-demonstration')
def test_get_api_url(self, session): z = Zappa(session) z.credentials_arn = 'arn:aws:iam::724336686645:role/ZappaLambdaExecution' url = z.get_api_url('Spheres-demonstration', 'demonstration')
def test_create_api_gateway_routes_with_different_auth_methods(self): z = Zappa() z.parameter_depth = 1 z.integration_response_codes = [200] z.method_response_codes = [200] z.http_methods = ['GET'] z.credentials_arn = 'arn:aws:iam::12345:role/ZappaLambdaExecution' lambda_arn = 'arn:aws:lambda:us-east-1:12345:function:helloworld' # No auth at all z.create_stack_template(lambda_arn, 'helloworld', False, {}, False, None) parsable_template = json.loads(z.cf_template.to_json()) self.assertEqual( "NONE", parsable_template["Resources"]["GET0"]["Properties"] ["AuthorizationType"]) self.assertEqual( "NONE", parsable_template["Resources"]["GET1"]["Properties"] ["AuthorizationType"]) self.assertEqual( False, parsable_template["Resources"]["GET0"]["Properties"] ["ApiKeyRequired"]) self.assertEqual( False, parsable_template["Resources"]["GET1"]["Properties"] ["ApiKeyRequired"]) # IAM auth z.create_stack_template(lambda_arn, 'helloworld', False, {}, True, None) parsable_template = json.loads(z.cf_template.to_json()) self.assertEqual( "AWS_IAM", parsable_template["Resources"]["GET0"]["Properties"] ["AuthorizationType"]) self.assertEqual( "AWS_IAM", parsable_template["Resources"]["GET1"]["Properties"] ["AuthorizationType"]) self.assertEqual( False, parsable_template["Resources"]["GET0"]["Properties"] ["ApiKeyRequired"]) self.assertEqual( False, parsable_template["Resources"]["GET1"]["Properties"] ["ApiKeyRequired"]) # API Key auth z.create_stack_template(lambda_arn, 'helloworld', True, {}, True, None) parsable_template = json.loads(z.cf_template.to_json()) self.assertEqual( "AWS_IAM", parsable_template["Resources"]["GET0"]["Properties"] ["AuthorizationType"]) self.assertEqual( "AWS_IAM", parsable_template["Resources"]["GET1"]["Properties"] ["AuthorizationType"]) self.assertEqual( True, parsable_template["Resources"]["GET0"]["Properties"] ["ApiKeyRequired"]) self.assertEqual( True, parsable_template["Resources"]["GET1"]["Properties"] ["ApiKeyRequired"]) # Authorizer and IAM authorizer = { "function": "runapi.authorization.gateway_authorizer.evaluate_token", "result_ttl": 300, "token_header": "Authorization", "validation_expression": "xxx" } z.create_stack_template(lambda_arn, 'helloworld', False, {}, True, authorizer) parsable_template = json.loads(z.cf_template.to_json()) self.assertEqual( "AWS_IAM", parsable_template["Resources"]["GET0"]["Properties"] ["AuthorizationType"]) self.assertEqual( "AWS_IAM", parsable_template["Resources"]["GET1"]["Properties"] ["AuthorizationType"]) with self.assertRaises(KeyError): parsable_template["Resources"]["Authorizer"] # Authorizer with validation expression invocations_uri = 'arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/' + lambda_arn + '/invocations' z.create_stack_template(lambda_arn, 'helloworld', False, {}, False, authorizer) parsable_template = json.loads(z.cf_template.to_json()) self.assertEqual( "CUSTOM", parsable_template["Resources"]["GET0"]["Properties"] ["AuthorizationType"]) self.assertEqual( "CUSTOM", parsable_template["Resources"]["GET1"]["Properties"] ["AuthorizationType"]) self.assertEqual( "TOKEN", parsable_template["Resources"]["Authorizer"]["Properties"]["Type"]) self.assertEqual( "ZappaAuthorizer", parsable_template["Resources"]["Authorizer"]["Properties"]["Name"]) self.assertEqual( 300, parsable_template["Resources"]["Authorizer"]["Properties"] ["AuthorizerResultTtlInSeconds"]) self.assertEqual( invocations_uri, parsable_template["Resources"]["Authorizer"] ["Properties"]["AuthorizerUri"]) self.assertEqual( z.credentials_arn, parsable_template["Resources"]["Authorizer"] ["Properties"]["AuthorizerCredentials"]) self.assertEqual( "xxx", parsable_template["Resources"]["Authorizer"]["Properties"] ["IdentityValidationExpression"]) # Authorizer without validation expression authorizer.pop('validation_expression', None) z.create_stack_template(lambda_arn, 'helloworld', False, {}, False, authorizer) parsable_template = json.loads(z.cf_template.to_json()) self.assertEqual( "CUSTOM", parsable_template["Resources"]["GET0"]["Properties"] ["AuthorizationType"]) self.assertEqual( "CUSTOM", parsable_template["Resources"]["GET1"]["Properties"] ["AuthorizationType"]) self.assertEqual( "TOKEN", parsable_template["Resources"]["Authorizer"]["Properties"]["Type"]) with self.assertRaises(KeyError): parsable_template["Resources"]["Authorizer"]["Properties"][ "IdentityValidationExpression"]