def test_replace_local_codeuri_when_no_codeuri_given(self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "ServerlessApi": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod", } }, "ServerlessFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs6.10", "Timeout": 60 } } } } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() # check template tempalte_resources = validator.sam_template.get("Resources") self.assertEquals(tempalte_resources.get("ServerlessApi").get("Properties").get("DefinitionUri"), "s3://bucket/value") self.assertEquals(tempalte_resources.get("ServerlessFunction").get("Properties").get("CodeUri"), "s3://bucket/value")
def test_DefinitionUri_does_not_get_added_to_template_when_DefinitionBody_given(self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "ServerlessApi": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod", "DefinitionBody": { "swagger": {} } } } } } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() tempalte_resources = validator.sam_template.get("Resources") self.assertNotIn("DefinitionUri", tempalte_resources.get("ServerlessApi").get("Properties")) self.assertIn("DefinitionBody", tempalte_resources.get("ServerlessApi").get("Properties"))
def test_DefinitionUri_does_not_get_added_to_template_when_DefinitionBody_given( self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "ServerlessApi": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod", "DefinitionBody": { "swagger": {} } }, } }, } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() tempalte_resources = validator.sam_template.get("Resources") self.assertNotIn( "DefinitionUri", tempalte_resources.get("ServerlessApi").get("Properties")) self.assertIn( "DefinitionBody", tempalte_resources.get("ServerlessApi").get("Properties"))
def test_replace_local_codeuri_when_no_codeuri_given(self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "ServerlessApi": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod" } }, "ServerlessFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs6.10", "Timeout": 60 }, }, }, } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() # check template tempalte_resources = validator.sam_template.get("Resources") self.assertEqual( tempalte_resources.get("ServerlessFunction").get("Properties").get( "CodeUri"), "s3://bucket/value")
def test_dont_replace_local_codeuri_when_no_codeuri_given_packagetype_image( self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "ServerlessApi": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod" } }, "ServerlessFunction": { "Type": "AWS::Serverless::Function", "Properties": { "PackageType": IMAGE, "ImageUri": "myimage:latest", "Timeout": 60 }, }, }, } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() # check template template_resources = validator.sam_template.get("Resources") self.assertEqual( template_resources.get("ServerlessFunction").get("Properties").get( "CodeUri", "NotPresent"), "NotPresent")
def test_dont_replace_codeuri_when_global_code_uri_given__both_packagetype( self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Globals": { "Function": { "CodeUri": "s3://globalcodeuri", } }, "Resources": { "ServerlessApi": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod" } }, "ServerlessFunctionImage": { "Type": "AWS::Serverless::Function", "Properties": { "PackageType": IMAGE, "ImageUri": "myimage:latest", "Timeout": 60 }, }, "ServerlessFunctionZip": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs6.10", "Timeout": 60 }, }, }, } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() # check template template_resources = validator.sam_template.get("Resources") self.assertEqual( template_resources.get("ServerlessFunctionImage").get( "Properties").get("CodeUri", "NotPresent"), "NotPresent", ) # Globals not set since they cant apply to both Zip and Image based packagetypes. self.assertEqual( template_resources.get("ServerlessFunctionZip").get( "Properties").get("CodeUri"), "s3://bucket/value")
def test_replace_local_codeuri_with_no_resources(self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": {} } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() # check template self.assertEquals(validator.sam_template.get("Resources"), {})
def test_replace_local_codeuri_with_no_resources(self): template = { "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": {}, } managed_policy_mock = Mock() validator = SamTemplateValidator(template, managed_policy_mock) validator._replace_local_codeuri() # check template self.assertEqual(validator.sam_template.get("Resources"), {})