github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/backend/remote-state/consul/backend_test.go (about) 1 package consul 2 3 import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "testing" 8 "time" 9 10 "github.com/hashicorp/consul/testutil" 11 "github.com/hashicorp/terraform/backend" 12 ) 13 14 func TestBackend_impl(t *testing.T) { 15 var _ backend.Backend = new(Backend) 16 } 17 18 func newConsulTestServer(t *testing.T) *testutil.TestServer { 19 skip := os.Getenv("TF_ACC") == "" && os.Getenv("TF_CONSUL_TEST") == "" 20 if skip { 21 t.Log("consul server tests require setting TF_ACC or TF_CONSUL_TEST") 22 t.Skip() 23 } 24 25 srv := testutil.NewTestServerConfig(t, func(c *testutil.TestServerConfig) { 26 c.LogLevel = "warn" 27 28 if !testing.Verbose() { 29 c.Stdout = ioutil.Discard 30 c.Stderr = ioutil.Discard 31 } 32 }) 33 34 return srv 35 } 36 37 func TestBackend(t *testing.T) { 38 srv := newConsulTestServer(t) 39 defer srv.Stop() 40 41 path := fmt.Sprintf("tf-unit/%s", time.Now().String()) 42 43 // Get the backend. We need two to test locking. 44 b1 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 45 "address": srv.HTTPAddr, 46 "path": path, 47 }) 48 49 b2 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 50 "address": srv.HTTPAddr, 51 "path": path, 52 }) 53 54 // Test 55 backend.TestBackend(t, b1, b2) 56 } 57 58 func TestBackend_lockDisabled(t *testing.T) { 59 srv := newConsulTestServer(t) 60 defer srv.Stop() 61 62 path := fmt.Sprintf("tf-unit/%s", time.Now().String()) 63 64 // Get the backend. We need two to test locking. 65 b1 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 66 "address": srv.HTTPAddr, 67 "path": path, 68 "lock": false, 69 }) 70 71 b2 := backend.TestBackendConfig(t, New(), map[string]interface{}{ 72 "address": srv.HTTPAddr, 73 "path": path + "different", // Diff so locking test would fail if it was locking 74 "lock": false, 75 }) 76 77 // Test 78 backend.TestBackend(t, b1, b2) 79 } 80 81 func TestBackend_gzip(t *testing.T) { 82 srv := newConsulTestServer(t) 83 defer srv.Stop() 84 85 // Get the backend 86 b := backend.TestBackendConfig(t, New(), map[string]interface{}{ 87 "address": srv.HTTPAddr, 88 "path": fmt.Sprintf("tf-unit/%s", time.Now().String()), 89 "gzip": true, 90 }) 91 92 // Test 93 backend.TestBackend(t, b, nil) 94 }