Best Python code snippet using localstack_python
test_cloudformation_stacks.py
Source:test_cloudformation_stacks.py
...81 TemplateBody=load_template_raw("cfn_reuse_param.yaml"),82 Parameters=[{"ParameterKey": "DeployParam", "ParameterValue": "no"}],83 )84 stack_id = create_response["StackId"]85 def wait_stack_done():86 return cfn_client.describe_stacks(StackName=stack_id)["Stacks"][0]["StackStatus"] in [87 "CREATE_COMPLETE",88 "UPDATE_COMPLETE",89 ]90 assert wait_until(wait_stack_done)91 stack_describe_response = cfn_client.describe_stacks(StackName=stack_id)["Stacks"][0]92 assert len(stack_describe_response["Outputs"]) == 193 # 2. update using UsePreviousValue. DeployParam should still be "no", still overriding the default and the only change should be the changed tag on the required topic94 cfn_client.update_stack(95 StackName=stack_name,96 TemplateBody=load_template_raw("cfn_reuse_param.yaml"),97 Parameters=[98 {"ParameterKey": "CustomTag", "ParameterValue": "trigger-change"},99 {"ParameterKey": "DeployParam", "UsePreviousValue": True},100 ],101 )102 assert wait_until(wait_stack_done)103 stack_describe_response = cfn_client.describe_stacks(StackName=stack_id)["Stacks"][0]104 assert len(stack_describe_response["Outputs"]) == 1105 # 3. update with setting the deployparam to "yes" not. The condition will evaluate to true and thus create the topic + output106 # note: for an even trickier challenge for the cloudformation engine, remove the second parameter key. Behavior should stay the same.107 cfn_client.update_stack(108 StackName=stack_name,109 TemplateBody=load_template_raw("cfn_reuse_param.yaml"),110 Parameters=[111 {"ParameterKey": "CustomTag", "ParameterValue": "trigger-change-2"},112 {"ParameterKey": "DeployParam", "ParameterValue": "yes"},113 ],114 )115 assert wait_until(wait_stack_done)116 stack_describe_response = cfn_client.describe_stacks(StackName=stack_id)["Stacks"][0]117 assert len(stack_describe_response["Outputs"]) == 2118@pytest.mark.aws_validated119def test_stack_time_attributes(cfn_client, deploy_cfn_template):120 api_name = f"test_{short_uid()}"121 template_path = os.path.join(os.path.dirname(__file__), "../templates/simple_api.yaml")122 deployed = deploy_cfn_template(123 template_path=template_path,124 parameters={"ApiName": api_name},125 )126 stack_name = deployed.stack_name127 assert "CreationTime" in cfn_client.describe_stacks(StackName=stack_name)["Stacks"][0]128 api_name = f"test_{short_uid()}"129 stack_id = deployed.stack_id130 cfn_client.update_stack(131 StackName=stack_name,132 TemplateBody=load_template_file(template_path),133 Parameters=[{"ParameterKey": "ApiName", "ParameterValue": api_name}],134 )135 def wait_stack_done():136 return cfn_client.describe_stacks(StackName=stack_id)["Stacks"][0]["StackStatus"] in [137 "CREATE_COMPLETE",138 "UPDATE_COMPLETE",139 ]140 assert wait_until(wait_stack_done)141 assert "LastUpdatedTime" in cfn_client.describe_stacks(StackName=stack_name)["Stacks"][0]142 cfn_client.delete_stack(143 StackName=stack_name,144 )145 assert "DeletionTime" in cfn_client.describe_stacks(StackName=stack_name)["Stacks"][0]146@pytest.mark.aws_validated147def test_stack_description_special_chars(cfn_client, deploy_cfn_template, snapshot):148 snapshot.add_transformer(snapshot.transform.cloudformation_api())149 template = """...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!