github.com/nathanielks/terraform@v0.6.1-0.20170509030759-13e1a62319dc/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  }