github.com/andresvia/terraform@v0.6.15-0.20160412045437-d51c75946785/builtin/providers/docker/resource_docker_image_test.go (about)

     1  package docker
     2  
     3  import (
     4  	"fmt"
     5  	"regexp"
     6  	"testing"
     7  
     8  	dc "github.com/fsouza/go-dockerclient"
     9  	"github.com/hashicorp/terraform/helper/resource"
    10  	"github.com/hashicorp/terraform/terraform"
    11  )
    12  
    13  var contentDigestRegexp = regexp.MustCompile(`\A[A-Za-z0-9_\+\.-]+:[A-Fa-f0-9]+\z`)
    14  
    15  func TestAccDockerImage_basic(t *testing.T) {
    16  	resource.Test(t, resource.TestCase{
    17  		PreCheck:     func() { testAccPreCheck(t) },
    18  		Providers:    testAccProviders,
    19  		CheckDestroy: testAccDockerImageDestroy,
    20  		Steps: []resource.TestStep{
    21  			resource.TestStep{
    22  				Config: testAccDockerImageConfig,
    23  				Check: resource.ComposeTestCheckFunc(
    24  					resource.TestMatchResourceAttr("docker_image.foo", "latest", contentDigestRegexp),
    25  				),
    26  			},
    27  		},
    28  	})
    29  }
    30  
    31  func TestAccDockerImage_private(t *testing.T) {
    32  	resource.Test(t, resource.TestCase{
    33  		PreCheck:     func() { testAccPreCheck(t) },
    34  		Providers:    testAccProviders,
    35  		CheckDestroy: testAccDockerImageDestroy,
    36  		Steps: []resource.TestStep{
    37  			resource.TestStep{
    38  				Config: testAddDockerPrivateImageConfig,
    39  				Check: resource.ComposeTestCheckFunc(
    40  					resource.TestMatchResourceAttr("docker_image.foobar", "latest", contentDigestRegexp),
    41  				),
    42  			},
    43  		},
    44  	})
    45  }
    46  
    47  func testAccDockerImageDestroy(s *terraform.State) error {
    48  	//client := testAccProvider.Meta().(*dc.Client)
    49  
    50  	for _, rs := range s.RootModule().Resources {
    51  		if rs.Type != "docker_image" {
    52  			continue
    53  		}
    54  
    55  		client := testAccProvider.Meta().(*dc.Client)
    56  		_, err := client.InspectImage(rs.Primary.Attributes["latest"])
    57  		if err == nil {
    58  			return fmt.Errorf("Image still exists")
    59  		} else if err != dc.ErrNoSuchImage {
    60  			return err
    61  		}
    62  	}
    63  	return nil
    64  }
    65  
    66  const testAccDockerImageConfig = `
    67  resource "docker_image" "foo" {
    68  	name = "alpine:3.1"
    69  	keep_updated = false
    70  }
    71  `
    72  
    73  const testAddDockerPrivateImageConfig = `
    74  resource "docker_image" "foobar" {
    75  	name = "gcr.io:443/google_containers/pause:0.8.0"
    76  	keep_updated = true
    77  }
    78  `