Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests/provider: Migrate remaining PreConfig disappears testing to testAccCheckResourceDisappears #16305

Merged
merged 2 commits into from
Dec 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 12 additions & 69 deletions aws/resource_aws_app_cookie_stickiness_policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,10 @@ func TestAccAWSAppCookieStickinessPolicy_basic(t *testing.T) {
})
}

func TestAccAWSAppCookieStickinessPolicy_missingLB(t *testing.T) {
func TestAccAWSAppCookieStickinessPolicy_disappears_ELB(t *testing.T) {
lbName := fmt.Sprintf("tf-test-lb-%s", acctest.RandString(5))

// check that we can destroy the policy if the LB is missing
removeLB := func() {
conn := testAccProvider.Meta().(*AWSClient).elbconn
deleteElbOpts := elb.DeleteLoadBalancerInput{
LoadBalancerName: aws.String(lbName),
}
if _, err := conn.DeleteLoadBalancer(&deleteElbOpts); err != nil {
t.Fatalf("Error deleting ELB: %s", err)
}
}
elbResourceName := "aws_elb.lb"
resourceName := "aws_app_cookie_stickiness_policy.foo"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Expand All @@ -69,15 +60,10 @@ func TestAccAWSAppCookieStickinessPolicy_missingLB(t *testing.T) {
{
Config: testAccAppCookieStickinessPolicyConfig(lbName),
Check: resource.ComposeTestCheckFunc(
testAccCheckAppCookieStickinessPolicy(
"aws_elb.lb",
"aws_app_cookie_stickiness_policy.foo",
),
testAccCheckAppCookieStickinessPolicy(elbResourceName, resourceName),
testAccCheckResourceDisappears(testAccProvider, resourceAwsElb(), elbResourceName),
),
},
{
PreConfig: removeLB,
Config: testAccAppCookieStickinessPolicyConfigDestroy(lbName),
ExpectNonEmptyPlan: true,
},
},
})
Expand Down Expand Up @@ -139,25 +125,10 @@ func testAccCheckAppCookieStickinessPolicy(elbResource string, policyResource st
}
}

// ensure the policy is re-added is it goes missing
func TestAccAWSAppCookieStickinessPolicy_drift(t *testing.T) {
func TestAccAWSAppCookieStickinessPolicy_disappears(t *testing.T) {
lbName := fmt.Sprintf("tf-test-lb-%s", acctest.RandString(5))

// We only want to remove the reference to the policy from the listner,
// beacause that's all that can be done via the console.
removePolicy := func() {
conn := testAccProvider.Meta().(*AWSClient).elbconn

setLoadBalancerOpts := &elb.SetLoadBalancerPoliciesOfListenerInput{
LoadBalancerName: aws.String(lbName),
LoadBalancerPort: aws.Int64(80),
PolicyNames: []*string{},
}

if _, err := conn.SetLoadBalancerPoliciesOfListener(setLoadBalancerOpts); err != nil {
t.Fatalf("Error removing AppCookieStickinessPolicy: %s", err)
}
}
elbResourceName := "aws_elb.lb"
resourceName := "aws_app_cookie_stickiness_policy.foo"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Expand All @@ -167,21 +138,10 @@ func TestAccAWSAppCookieStickinessPolicy_drift(t *testing.T) {
{
Config: testAccAppCookieStickinessPolicyConfig(lbName),
Check: resource.ComposeTestCheckFunc(
testAccCheckAppCookieStickinessPolicy(
"aws_elb.lb",
"aws_app_cookie_stickiness_policy.foo",
),
),
},
{
PreConfig: removePolicy,
Config: testAccAppCookieStickinessPolicyConfig(lbName),
Check: resource.ComposeTestCheckFunc(
testAccCheckAppCookieStickinessPolicy(
"aws_elb.lb",
"aws_app_cookie_stickiness_policy.foo",
),
testAccCheckAppCookieStickinessPolicy(elbResourceName, resourceName),
testAccCheckResourceDisappears(testAccProvider, resourceAwsAppCookieStickinessPolicy(), resourceName),
),
ExpectNonEmptyPlan: true,
},
},
})
Expand Down Expand Up @@ -233,20 +193,3 @@ resource "aws_app_cookie_stickiness_policy" "foo" {
}
`, rName))
}

// attempt to destroy the policy, but we'll delete the LB in the PreConfig
func testAccAppCookieStickinessPolicyConfigDestroy(rName string) string {
return composeConfig(testAccAvailableAZsNoOptInConfig(), fmt.Sprintf(`
resource "aws_elb" "lb" {
name = "%s"
availability_zones = [data.aws_availability_zones.available.names[0]]

listener {
instance_port = 8000
instance_protocol = "http"
lb_port = 80
lb_protocol = "http"
}
}
`, rName))
}
27 changes: 5 additions & 22 deletions aws/resource_aws_ecs_task_definition_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -639,24 +639,12 @@ func TestAccAWSEcsTaskDefinition_ExecutionRole(t *testing.T) {
}

// Regression for https://github.com/hashicorp/terraform/issues/3582#issuecomment-286409786
func TestAccAWSEcsTaskDefinition_Inactive(t *testing.T) {
func TestAccAWSEcsTaskDefinition_disappears(t *testing.T) {
var def ecs.TaskDefinition

tdName := acctest.RandomWithPrefix("tf-acc-td-basic")
resourceName := "aws_ecs_task_definition.test"

markTaskDefinitionInactive := func() {
conn := testAccProvider.Meta().(*AWSClient).ecsconn

_, err := conn.DeregisterTaskDefinition(&ecs.DeregisterTaskDefinitionInput{
TaskDefinition: aws.String(fmt.Sprintf("%s:1", tdName)),
})

if err != nil {
t.Fatalf("error deregistering ECS Task Definition (%s): %s", tdName, err)
}
}

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
Expand All @@ -666,18 +654,13 @@ func TestAccAWSEcsTaskDefinition_Inactive(t *testing.T) {
Config: testAccAWSEcsTaskDefinition(tdName),
Check: resource.ComposeTestCheckFunc(
testAccCheckAWSEcsTaskDefinitionExists(resourceName, &def),
testAccCheckResourceDisappears(testAccProvider, resourceAwsEcsTaskDefinition(), resourceName),
),
ExpectNonEmptyPlan: true,
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateIdFunc: testAccAWSEcsTaskDefinitionImportStateIdFunc(resourceName),
ImportStateVerify: true,
},
{
Config: testAccAWSEcsTaskDefinition(tdName),
PreConfig: markTaskDefinitionInactive,
Check: resource.TestCheckResourceAttr(resourceName, "revision", "2"), // should get re-created
Config: testAccAWSEcsTaskDefinition(tdName),
Check: resource.TestCheckResourceAttr(resourceName, "revision", "2"), // should get re-created
},
},
})
Expand Down
35 changes: 0 additions & 35 deletions aws/resource_aws_glue_catalog_table_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,6 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
)

func TestAccAWSGlueCatalogTable_recreates(t *testing.T) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already handled by existing _disappears test:

--- PASS: TestAccAWSGlueCatalogTable_disappears (10.65s)

resourceName := "aws_glue_catalog_table.test"
rName := acctest.RandomWithPrefix("tf-acc-test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckGlueTableDestroy,
Steps: []resource.TestStep{
{
Config: testAccGlueCatalogTable_basic(rName),
Check: resource.ComposeTestCheckFunc(
testAccCheckGlueCatalogTableExists(resourceName),
),
},
{
PreConfig: func() {
conn := testAccProvider.Meta().(*AWSClient).glueconn
input := &glue.DeleteTableInput{
Name: aws.String(rName),
DatabaseName: aws.String(rName),
}
_, err := conn.DeleteTable(input)
if err != nil {
t.Fatalf("error deleting Glue Catalog Table: %s", err)
}
},
Config: testAccGlueCatalogTable_basic(rName),
ExpectNonEmptyPlan: true,
PlanOnly: true,
},
},
})
}

func TestAccAWSGlueCatalogTable_basic(t *testing.T) {
rName := acctest.RandomWithPrefix("tf-acc-test")
resourceName := "aws_glue_catalog_table.test"
Expand Down
80 changes: 12 additions & 68 deletions aws/resource_aws_lb_cookie_stickiness_policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,24 +97,10 @@ func testAccCheckLBCookieStickinessPolicy(elbResource string, policyResource str
}
}

func TestAccAWSLBCookieStickinessPolicy_drift(t *testing.T) {
func TestAccAWSLBCookieStickinessPolicy_disappears(t *testing.T) {
lbName := fmt.Sprintf("tf-test-lb-%s", acctest.RandString(5))

// We only want to remove the reference to the policy from the listner,
// beacause that's all that can be done via the console.
removePolicy := func() {
conn := testAccProvider.Meta().(*AWSClient).elbconn

setLoadBalancerOpts := &elb.SetLoadBalancerPoliciesOfListenerInput{
LoadBalancerName: aws.String(lbName),
LoadBalancerPort: aws.Int64(80),
PolicyNames: []*string{},
}

if _, err := conn.SetLoadBalancerPoliciesOfListener(setLoadBalancerOpts); err != nil {
t.Fatalf("Error removing LBCookieStickinessPolicy: %s", err)
}
}
elbResourceName := "aws_elb.lb"
resourceName := "aws_lb_cookie_stickiness_policy.foo"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Expand All @@ -124,39 +110,19 @@ func TestAccAWSLBCookieStickinessPolicy_drift(t *testing.T) {
{
Config: testAccLBCookieStickinessPolicyConfig(lbName),
Check: resource.ComposeTestCheckFunc(
testAccCheckLBCookieStickinessPolicy(
"aws_elb.lb",
"aws_lb_cookie_stickiness_policy.foo",
),
),
},
{
PreConfig: removePolicy,
Config: testAccLBCookieStickinessPolicyConfig(lbName),
Check: resource.ComposeTestCheckFunc(
testAccCheckLBCookieStickinessPolicy(
"aws_elb.lb",
"aws_lb_cookie_stickiness_policy.foo",
),
testAccCheckLBCookieStickinessPolicy(elbResourceName, resourceName),
testAccCheckResourceDisappears(testAccProvider, resourceAwsLBCookieStickinessPolicy(), resourceName),
),
ExpectNonEmptyPlan: true,
},
},
})
}

func TestAccAWSLBCookieStickinessPolicy_missingLB(t *testing.T) {
func TestAccAWSLBCookieStickinessPolicy_disappears_ELB(t *testing.T) {
lbName := fmt.Sprintf("tf-test-lb-%s", acctest.RandString(5))

// check that we can destroy the policy if the LB is missing
removeLB := func() {
conn := testAccProvider.Meta().(*AWSClient).elbconn
deleteElbOpts := elb.DeleteLoadBalancerInput{
LoadBalancerName: aws.String(lbName),
}
if _, err := conn.DeleteLoadBalancer(&deleteElbOpts); err != nil {
t.Fatalf("Error deleting ELB: %s", err)
}
}
elbResourceName := "aws_elb.lb"
resourceName := "aws_lb_cookie_stickiness_policy.foo"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Expand All @@ -166,15 +132,10 @@ func TestAccAWSLBCookieStickinessPolicy_missingLB(t *testing.T) {
{
Config: testAccLBCookieStickinessPolicyConfig(lbName),
Check: resource.ComposeTestCheckFunc(
testAccCheckLBCookieStickinessPolicy(
"aws_elb.lb",
"aws_lb_cookie_stickiness_policy.foo",
),
testAccCheckLBCookieStickinessPolicy(elbResourceName, resourceName),
testAccCheckResourceDisappears(testAccProvider, resourceAwsElb(), elbResourceName),
),
},
{
PreConfig: removeLB,
Config: testAccLBCookieStickinessPolicyConfigDestroy(lbName),
ExpectNonEmptyPlan: true,
},
},
})
Expand Down Expand Up @@ -225,20 +186,3 @@ resource "aws_lb_cookie_stickiness_policy" "foo" {
}
`, rName))
}

// attempt to destroy the policy, but we'll delete the LB in the PreConfig
func testAccLBCookieStickinessPolicyConfigDestroy(rName string) string {
return composeConfig(testAccAvailableAZsNoOptInConfig(), fmt.Sprintf(`
resource "aws_elb" "lb" {
name = "%s"
availability_zones = [data.aws_availability_zones.available.names[0]]

listener {
instance_port = 8000
instance_protocol = "http"
lb_port = 80
lb_protocol = "http"
}
}
`, rName))
}
Loading