def test_import(): export_stack = FakeStack( stack_id="test_id", name="test_stack", template=export_value_template_json, parameters={}, region_name='us-west-1') import_stack = FakeStack( stack_id="test_id", name="test_stack", template=import_value_template_json, parameters={}, region_name='us-west-1', cross_stack_resources={export_stack.exports[0].value: export_stack.exports[0]}) queue = import_stack.resource_map['Queue'] queue.name.should.equal("value")
def test_sub(): stack = FakeStack(stack_id="test_id", name="test_stack", template=sub_template_json, parameters={}, region_name='us-west-1') queue1 = stack.resource_map['Queue1'] queue2 = stack.resource_map['Queue2'] queue2.name.should.equal(queue1.name)
def test_parse_split_and_select(): stack = FakeStack(stack_id="test_id", name="test_stack", template=split_select_template_json, parameters={}, region_name='us-west-1') stack.resource_map.should.have.length_of(1) queue = stack.resource_map['Queue'] queue.name.should.equal("myqueue")
def test_ssm_parameter_parsing(): client = boto3.client("ssm", region_name="us-west-1") client.put_parameter(Name="/path/to/single/param", Value="string", Type="String") client.put_parameter(Name="/path/to/list/param", Value="comma,separated,string", Type="StringList") if not settings.TEST_SERVER_MODE: stack = FakeStack( stack_id="test_id", name="test_stack", template=ssm_parameter_template_json, parameters={ "SingleParamCfn": "/path/to/single/param", "ListParamCfn": "/path/to/list/param", }, region_name="us-west-1", ) stack.resource_map.resolved_parameters["SingleParamCfn"].should.equal( "string") stack.resource_map.resolved_parameters["ListParamCfn"].should.equal( ["comma", "separated", "string"]) # Not passing in a value for ListParamCfn to test Default value if not settings.TEST_SERVER_MODE: stack = FakeStack( stack_id="test_id", name="test_stack", template=ssm_parameter_template_json, parameters={ "SingleParamCfn": "/path/to/single/param", }, region_name="us-west-1", ) stack.resource_map.resolved_parameters["SingleParamCfn"].should.equal( "string") stack.resource_map.resolved_parameters["ListParamCfn"].should.equal( ["comma", "separated", "string"])
def test_parse_stack_with_yaml_template(): stack = FakeStack(stack_id="test_id", name="test_stack", template=yaml.dump(name_type_template), parameters={}, region_name='us-west-1') stack.resource_map.should.have.length_of(1) list(stack.resource_map.keys())[0].should.equal('Queue') queue = list(stack.resource_map.values())[0] queue.should.be.a(Queue)
def test_parse_stack_with_parameters(): stack = FakeStack( stack_id="test_id", name="test_stack", template=parameters_template_json, parameters={"Param": "visible value", "NoEchoParam": "hidden value"}, region_name="us-west-1", ) stack.resource_map.no_echo_parameter_keys.should.have("NoEchoParam") stack.resource_map.no_echo_parameter_keys.should_not.have("Param")
def test_parse_stack_with_get_attribute_outputs(): stack = FakeStack(stack_id="test_id", name="test_stack", template=get_attribute_outputs_template_json, parameters={}, region_name='us-west-1') stack.output_map.should.have.length_of(1) list(stack.output_map.keys())[0].should.equal('Output1') output = list(stack.output_map.values())[0] output.should.be.a(Output) output.value.should.equal("my-queue")
def test_parse_stack_with_outputs(): stack = FakeStack(stack_id="test_id", name="test_stack", template=output_type_template_json, parameters={}, region_name='us-west-1') stack.output_map.should.have.length_of(1) list(stack.output_map.keys())[0].should.equal('Output1') output = list(stack.output_map.values())[0] output.should.be.a(Output) output.description.should.equal("This is a description.")
def test_parse_stack_resources(): stack = FakeStack( stack_id="test_id", name="test_stack", template=dummy_template_json, ) stack.resource_map.should.have.length_of(1) stack.resource_map.keys()[0].should.equal('WebServerGroup') queue = stack.resource_map.values()[0] queue.should.be.a(Queue) queue.name.should.equal("my-queue")
def test_parse_stack_with_get_availability_zones(): stack = FakeStack(stack_id="test_id", name="test_stack", template=get_availability_zones_template_json, parameters={}, region_name='us-east-1') stack.output_map.should.have.length_of(1) list(stack.output_map.keys())[0].should.equal('Output1') output = list(stack.output_map.values())[0] output.should.be.a(Output) output.value.should.equal( ["us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d"])
def test_parse_stack_with_tabbed_json_template(): stack = FakeStack( stack_id="test_id", name="test_stack", template=name_type_template_with_tabs_json, parameters={}, region_name="us-west-1", ) stack.resource_map.should.have.length_of(1) list(stack.resource_map.keys())[0].should.equal("Queue") queue = list(stack.resource_map.values())[0] queue.should.be.a(Queue)
def test_parse_stack_resources(): stack = FakeStack( stack_id="test_id", name="test_stack", template=dummy_template_json, parameters={}, region_name='us-west-1') stack.resource_map.should.have.length_of(1) list(stack.resource_map.keys())[0].should.equal('Queue') queue = list(stack.resource_map.values())[0] queue.should.be.a(Queue) queue.name.should.equal("my-queue")
def test_parse_stack_with_get_attribute_kms(): from .fixtures.kms_key import template template_json = json.dumps(template) stack = FakeStack(stack_id="test_id", name="test_stack", template=template_json, parameters={}, region_name='us-west-1') stack.output_map.should.have.length_of(1) list(stack.output_map.keys())[0].should.equal('KeyArn') output = list(stack.output_map.values())[0] output.should.be.a(Output)
def test_parse_stack_resources(): stack = FakeStack(stack_id="test_id", name="test_stack", template=dummy_template_json, parameters={}, region_name='us-west-1') stack.resource_map.should.have.length_of(2) queue = stack.resource_map['Queue'] queue.should.be.a(Queue) queue.name.should.equal("my-queue") bucket = stack.resource_map['S3Bucket'] bucket.should.be.a(FakeBucket) bucket.physical_resource_id.should.equal(bucket.name)
def test_parse_stack_with_parameters(): stack = FakeStack( stack_id="test_id", name="test_stack", template=parameters_template_json, parameters={ "Param": "visible value", "NumberParam": "42", "NumberListParam": "42,3.14159", "NoEchoParam": "hidden value", }, region_name="us-west-1", ) stack.resource_map.no_echo_parameter_keys.should.have("NoEchoParam") stack.resource_map.no_echo_parameter_keys.should_not.have("Param") stack.resource_map.no_echo_parameter_keys.should_not.have("NumberParam") stack.resource_map.no_echo_parameter_keys.should_not.have("NumberListParam") stack.resource_map.resolved_parameters["NumberParam"].should.equal(42) stack.resource_map.resolved_parameters["NumberListParam"].should.equal( [42, 3.14159] )