From fd528df00284efd103f5763c60b1a0613f367519 Mon Sep 17 00:00:00 2001 From: Paul Hinze Date: Tue, 22 Dec 2015 08:05:37 -0600 Subject: [PATCH] provider/aws: fix CheckDestroy for iam_group_policy tests --- .../aws/resource_aws_iam_group_policy_test.go | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/builtin/providers/aws/resource_aws_iam_group_policy_test.go b/builtin/providers/aws/resource_aws_iam_group_policy_test.go index ac7a3baaa0..ccf35310be 100644 --- a/builtin/providers/aws/resource_aws_iam_group_policy_test.go +++ b/builtin/providers/aws/resource_aws_iam_group_policy_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/iam" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/terraform" @@ -39,8 +40,30 @@ func TestAccAWSIAMGroupPolicy_basic(t *testing.T) { } func testAccCheckIAMGroupPolicyDestroy(s *terraform.State) error { - if len(s.RootModule().Resources) > 0 { - return fmt.Errorf("Expected all resources to be gone, but found: %#v", s.RootModule().Resources) + conn := testAccProvider.Meta().(*AWSClient).iamconn + + for _, rs := range s.RootModule().Resources { + if rs.Type != "aws_iam_group_policy" { + continue + } + + group, name := resourceAwsIamGroupPolicyParseId(rs.Primary.ID) + + request := &iam.GetGroupPolicyInput{ + PolicyName: aws.String(name), + GroupName: aws.String(group), + } + + _, err := conn.GetGroupPolicy(request) + if err != nil { + // Verify the error is what we want + if ae, ok := err.(awserr.Error); ok && ae.Code() == "NoSuchEntity" { + continue + } + return err + } + + return fmt.Errorf("still exists") } return nil