def test_parameter_symbols(self): template = { "Resources": {}, "Parameters": { "Test": { "Default": "data" } } } symbol_resolver = IntrinsicsSymbolTable(template=template) result = symbol_resolver.resolve_symbols("Test", IntrinsicResolver.REF) self.assertEqual(result, "data")
def test_custom_attribute_resolver(self): template = { "Resources": { "MyApi": { "Type": "AWS::ApiGateway::RestApi" } } } common_attribute_resolver = {"Arn": "test"} symbol_resolver = IntrinsicsSymbolTable( template=template, common_attribute_resolver=common_attribute_resolver) result = symbol_resolver.resolve_symbols("MyApi", "Arn") self.assertEqual(result, "test")
def test_default_type_resolver_function(self): template = { "Resources": { "MyApi": { "Type": "AWS::ApiGateway::RestApi" } }, } default_type_resolver = { "AWS::ApiGateway::RestApi": { "RootResourceId": lambda logical_id: logical_id } } symbol_resolver = IntrinsicsSymbolTable(template=template, default_type_resolver=default_type_resolver) result = symbol_resolver.resolve_symbols("MyApi", "RootResourceId") self.assertEquals(result, "MyApi")
def test_symbol_resolver_unknown_fail(self): resolver = IntrinsicsSymbolTable() with self.assertRaises(InvalidSymbolException): resolver.resolve_symbols("UNKNOWN", "SOME UNKNOWN RESOURCE PROPERTY")
def test_resolver_ignore_errors(self): resolver = IntrinsicsSymbolTable() res = resolver.resolve_symbols("UNKNOWN", "SOME UNKNOWN RESOURCE PROPERTY", ignore_errors=True) self.assertEqual(res, "$UNKNOWN.SOME UNKNOWN RESOURCE PROPERTY")