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 `