diff --git a/builtin/providers/aws/resource_aws_cloudformation_stack_test.go b/builtin/providers/aws/resource_aws_cloudformation_stack_test.go index c2c2540dca..67b0344bea 100644 --- a/builtin/providers/aws/resource_aws_cloudformation_stack_test.go +++ b/builtin/providers/aws/resource_aws_cloudformation_stack_test.go @@ -2,18 +2,18 @@ package aws import ( "fmt" - "math/rand" "testing" - "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/cloudformation" + "github.com/hashicorp/terraform/helper/acctest" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" ) func TestAccAWSCloudFormation_basic(t *testing.T) { var stack cloudformation.Stack + stackName := fmt.Sprintf("tf-acc-test-basic-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -21,7 +21,7 @@ func TestAccAWSCloudFormation_basic(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig, + Config: testAccAWSCloudFormationConfig(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.network", &stack), ), @@ -32,6 +32,7 @@ func TestAccAWSCloudFormation_basic(t *testing.T) { func TestAccAWSCloudFormation_yaml(t *testing.T) { var stack cloudformation.Stack + stackName := fmt.Sprintf("tf-acc-test-yaml-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -39,7 +40,7 @@ func TestAccAWSCloudFormation_yaml(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_yaml, + Config: testAccAWSCloudFormationConfig_yaml(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.yaml", &stack), ), @@ -50,6 +51,7 @@ func TestAccAWSCloudFormation_yaml(t *testing.T) { func TestAccAWSCloudFormation_defaultParams(t *testing.T) { var stack cloudformation.Stack + stackName := fmt.Sprintf("tf-acc-test-default-params-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -57,7 +59,7 @@ func TestAccAWSCloudFormation_defaultParams(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_defaultParams, + Config: testAccAWSCloudFormationConfig_defaultParams(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.asg-demo", &stack), ), @@ -68,6 +70,7 @@ func TestAccAWSCloudFormation_defaultParams(t *testing.T) { func TestAccAWSCloudFormation_allAttributes(t *testing.T) { var stack cloudformation.Stack + stackName := fmt.Sprintf("tf-acc-test-all-attributes-%s", acctest.RandString(10)) expectedPolicyBody := "{\"Statement\":[{\"Action\":\"Update:*\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Resource\":\"LogicalResourceId/StaticVPC\"},{\"Action\":\"Update:*\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"*\"}]}" resource.Test(t, resource.TestCase{ @@ -76,10 +79,10 @@ func TestAccAWSCloudFormation_allAttributes(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_allAttributesWithBodies, + Config: testAccAWSCloudFormationConfig_allAttributesWithBodies(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.full", &stack), - resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "name", "tf-full-stack"), + resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "name", stackName), resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "capabilities.#", "1"), resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "capabilities.1328347040", "CAPABILITY_IAM"), resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "disable_rollback", "false"), @@ -94,10 +97,10 @@ func TestAccAWSCloudFormation_allAttributes(t *testing.T) { ), }, { - Config: testAccAWSCloudFormationConfig_allAttributesWithBodies_modified, + Config: testAccAWSCloudFormationConfig_allAttributesWithBodies_modified(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.full", &stack), - resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "name", "tf-full-stack"), + resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "name", stackName), resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "capabilities.#", "1"), resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "capabilities.1328347040", "CAPABILITY_IAM"), resource.TestCheckResourceAttr("aws_cloudformation_stack.full", "disable_rollback", "false"), @@ -118,6 +121,7 @@ func TestAccAWSCloudFormation_allAttributes(t *testing.T) { // Regression for https://github.com/hashicorp/terraform/issues/4332 func TestAccAWSCloudFormation_withParams(t *testing.T) { var stack cloudformation.Stack + stackName := fmt.Sprintf("tf-acc-test-with-params-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -125,13 +129,13 @@ func TestAccAWSCloudFormation_withParams(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_withParams, + Config: testAccAWSCloudFormationConfig_withParams(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with_params", &stack), ), }, { - Config: testAccAWSCloudFormationConfig_withParams_modified, + Config: testAccAWSCloudFormationConfig_withParams_modified(stackName), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with_params", &stack), ), @@ -143,8 +147,7 @@ func TestAccAWSCloudFormation_withParams(t *testing.T) { // Regression for https://github.com/hashicorp/terraform/issues/4534 func TestAccAWSCloudFormation_withUrl_withParams(t *testing.T) { var stack cloudformation.Stack - cfRandInt := rand.New(rand.NewSource(time.Now().UnixNano())).Int() - cfBucketName := fmt.Sprintf("tf-stack-with-url-and-params-%d", cfRandInt) + rName := fmt.Sprintf("tf-acc-test-with-url-and-params-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -152,13 +155,13 @@ func TestAccAWSCloudFormation_withUrl_withParams(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_templateUrl_withParams(cfBucketName, "tf-cf-stack.json", "11.0.0.0/16"), + Config: testAccAWSCloudFormationConfig_templateUrl_withParams(rName, "tf-cf-stack.json", "11.0.0.0/16"), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with-url-and-params", &stack), ), }, { - Config: testAccAWSCloudFormationConfig_templateUrl_withParams(cfBucketName, "tf-cf-stack.json", "13.0.0.0/16"), + Config: testAccAWSCloudFormationConfig_templateUrl_withParams(rName, "tf-cf-stack.json", "13.0.0.0/16"), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with-url-and-params", &stack), ), @@ -169,8 +172,7 @@ func TestAccAWSCloudFormation_withUrl_withParams(t *testing.T) { func TestAccAWSCloudFormation_withUrl_withParams_withYaml(t *testing.T) { var stack cloudformation.Stack - cfRandInt := rand.New(rand.NewSource(time.Now().UnixNano())).Int() - cfBucketName := fmt.Sprintf("tf-stack-with-url-and-params-%d", cfRandInt) + rName := fmt.Sprintf("tf-acc-test-with-params-and-yaml-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -178,7 +180,7 @@ func TestAccAWSCloudFormation_withUrl_withParams_withYaml(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_templateUrl_withParams_withYaml(cfBucketName, "tf-cf-stack.yaml", "13.0.0.0/16"), + Config: testAccAWSCloudFormationConfig_templateUrl_withParams_withYaml(rName, "tf-cf-stack.yaml", "13.0.0.0/16"), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with-url-and-params-and-yaml", &stack), ), @@ -190,8 +192,7 @@ func TestAccAWSCloudFormation_withUrl_withParams_withYaml(t *testing.T) { // Test for https://github.com/hashicorp/terraform/issues/5653 func TestAccAWSCloudFormation_withUrl_withParams_noUpdate(t *testing.T) { var stack cloudformation.Stack - cfRandInt := rand.New(rand.NewSource(time.Now().UnixNano())).Int() - cfBucketName := fmt.Sprintf("tf-stack-with-url-and-params-%d", cfRandInt) + rName := fmt.Sprintf("tf-acc-test-with-params-no-update-%s", acctest.RandString(10)) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -199,13 +200,13 @@ func TestAccAWSCloudFormation_withUrl_withParams_noUpdate(t *testing.T) { CheckDestroy: testAccCheckAWSCloudFormationDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSCloudFormationConfig_templateUrl_withParams(cfBucketName, "tf-cf-stack-1.json", "11.0.0.0/16"), + Config: testAccAWSCloudFormationConfig_templateUrl_withParams(rName, "tf-cf-stack-1.json", "11.0.0.0/16"), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with-url-and-params", &stack), ), }, { - Config: testAccAWSCloudFormationConfig_templateUrl_withParams(cfBucketName, "tf-cf-stack-2.json", "11.0.0.0/16"), + Config: testAccAWSCloudFormationConfig_templateUrl_withParams(rName, "tf-cf-stack-2.json", "11.0.0.0/16"), Check: resource.ComposeTestCheckFunc( testAccCheckCloudFormationStackExists("aws_cloudformation_stack.with-url-and-params", &stack), ), @@ -265,9 +266,10 @@ func testAccCheckAWSCloudFormationDestroy(s *terraform.State) error { return nil } -var testAccAWSCloudFormationConfig = ` +func testAccAWSCloudFormationConfig(stackName string) string { + return fmt.Sprintf(` resource "aws_cloudformation_stack" "network" { - name = "tf-networking-stack" + name = "%s" template_body = <