59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package remote
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestMantaClient_impl(t *testing.T) {
|
|
var _ Client = new(MantaClient)
|
|
}
|
|
|
|
func TestMantaClient(t *testing.T) {
|
|
// This test creates an object in Manta in the root directory of
|
|
// the current MANTA_USER.
|
|
//
|
|
// It may incur costs, so it will only run if Manta credential environment
|
|
// variables are present.
|
|
|
|
mantaUser := os.Getenv("MANTA_USER")
|
|
mantaKeyId := os.Getenv("MANTA_KEY_ID")
|
|
mantaUrl := os.Getenv("MANTA_URL")
|
|
mantaKeyMaterial := os.Getenv("MANTA_KEY_MATERIAL")
|
|
|
|
if mantaUser == "" || mantaKeyId == "" || mantaUrl == "" || mantaKeyMaterial == "" {
|
|
t.Skipf("skipping; MANTA_USER, MANTA_KEY_ID, MANTA_URL and MANTA_KEY_MATERIAL must all be set")
|
|
}
|
|
|
|
if _, err := os.Stat(mantaKeyMaterial); err == nil {
|
|
t.Logf("[DEBUG] MANTA_KEY_MATERIAL is a file path %s", mantaKeyMaterial)
|
|
}
|
|
|
|
testPath := "terraform-remote-state-test"
|
|
|
|
client, err := mantaFactory(map[string]string{
|
|
"path": testPath,
|
|
"objectName": "terraform-test-state.tfstate",
|
|
})
|
|
|
|
if err != nil {
|
|
t.Fatalf("bad: %s", err)
|
|
}
|
|
|
|
mantaClient := client.(*MantaClient)
|
|
|
|
err = mantaClient.Client.PutDirectory(mantaClient.Path)
|
|
if err != nil {
|
|
t.Fatalf("bad: %s", err)
|
|
}
|
|
|
|
defer func() {
|
|
err = mantaClient.Client.DeleteDirectory(mantaClient.Path)
|
|
if err != nil {
|
|
t.Fatalf("bad: %s", err)
|
|
}
|
|
}()
|
|
|
|
testClient(t, client)
|
|
}
|