mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-01 11:47:07 -06:00
3c34e15d40
Some users would want to use Consul namespaces when using the Consul backend but the version of the Consul API client we use is too old and don't support them. In preparation for this change this patch just update it the client and replace testutil.NewTestServerConfig() by testutil.NewTestServerConfigT() in the tests.
104 lines
2.3 KiB
Go
104 lines
2.3 KiB
Go
package consul
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/hashicorp/consul/sdk/testutil"
|
|
"github.com/hashicorp/terraform/internal/backend"
|
|
)
|
|
|
|
func TestBackend_impl(t *testing.T) {
|
|
var _ backend.Backend = new(Backend)
|
|
}
|
|
|
|
func newConsulTestServer(t *testing.T) *testutil.TestServer {
|
|
if os.Getenv("TF_ACC") == "" && os.Getenv("TF_CONSUL_TEST") == "" {
|
|
t.Skipf("consul server tests require setting TF_ACC or TF_CONSUL_TEST")
|
|
}
|
|
|
|
srv, err := testutil.NewTestServerConfigT(t, func(c *testutil.TestServerConfig) {
|
|
c.LogLevel = "warn"
|
|
|
|
if !flag.Parsed() {
|
|
flag.Parse()
|
|
}
|
|
|
|
if !testing.Verbose() {
|
|
c.Stdout = ioutil.Discard
|
|
c.Stderr = ioutil.Discard
|
|
}
|
|
})
|
|
|
|
if err != nil {
|
|
t.Fatalf("failed to create consul test server: %s", err)
|
|
}
|
|
|
|
srv.WaitForSerfCheck(t)
|
|
srv.WaitForLeader(t)
|
|
|
|
return srv
|
|
}
|
|
|
|
func TestBackend(t *testing.T) {
|
|
srv := newConsulTestServer(t)
|
|
|
|
path := fmt.Sprintf("tf-unit/%s", time.Now().String())
|
|
|
|
// Get the backend. We need two to test locking.
|
|
b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
|
|
"address": srv.HTTPAddr,
|
|
"path": path,
|
|
}))
|
|
|
|
b2 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
|
|
"address": srv.HTTPAddr,
|
|
"path": path,
|
|
}))
|
|
|
|
// Test
|
|
backend.TestBackendStates(t, b1)
|
|
backend.TestBackendStateLocks(t, b1, b2)
|
|
}
|
|
|
|
func TestBackend_lockDisabled(t *testing.T) {
|
|
srv := newConsulTestServer(t)
|
|
|
|
path := fmt.Sprintf("tf-unit/%s", time.Now().String())
|
|
|
|
// Get the backend. We need two to test locking.
|
|
b1 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
|
|
"address": srv.HTTPAddr,
|
|
"path": path,
|
|
"lock": false,
|
|
}))
|
|
|
|
b2 := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
|
|
"address": srv.HTTPAddr,
|
|
"path": path + "different", // Diff so locking test would fail if it was locking
|
|
"lock": false,
|
|
}))
|
|
|
|
// Test
|
|
backend.TestBackendStates(t, b1)
|
|
backend.TestBackendStateLocks(t, b1, b2)
|
|
}
|
|
|
|
func TestBackend_gzip(t *testing.T) {
|
|
srv := newConsulTestServer(t)
|
|
|
|
// Get the backend
|
|
b := backend.TestBackendConfig(t, New(), backend.TestWrapConfig(map[string]interface{}{
|
|
"address": srv.HTTPAddr,
|
|
"path": fmt.Sprintf("tf-unit/%s", time.Now().String()),
|
|
"gzip": true,
|
|
}))
|
|
|
|
// Test
|
|
backend.TestBackendStates(t, b)
|
|
}
|