opentofu/builtin/providers/ovh/provider_test.go
yanndegat 21d8125d5c provider/ovh: new provider (#12669)
* vendor: add go-ovh

* provider/ovh: new provider

* provider/ovh: Adding PublicCloud User Resource

* provider/ovh: Adding VRack Attachment Resource

* provider/ovh: Adding PublicCloud Network Resource

* provider/ovh: Adding PublicCloud Subnet Resource

* provider/ovh: Adding PublicCloud Regions Datasource

* provider/ovh: Adding PublicCloud Region Datasource

* provider/ovh: Fix Acctests using project's regions
2017-05-16 17:26:43 +03:00

120 lines
2.7 KiB
Go

package ovh
import (
"fmt"
"log"
"os"
"testing"
"github.com/hashicorp/terraform/helper/schema"
"github.com/hashicorp/terraform/terraform"
"github.com/ovh/go-ovh/ovh"
)
var testAccProviders map[string]terraform.ResourceProvider
var testAccProvider *schema.Provider
var testAccOVHClient *ovh.Client
func init() {
log.SetOutput(os.Stdout)
testAccProvider = Provider().(*schema.Provider)
testAccProviders = map[string]terraform.ResourceProvider{
"ovh": testAccProvider,
}
}
func TestProvider(t *testing.T) {
if err := Provider().(*schema.Provider).InternalValidate(); err != nil {
t.Fatalf("err: %s", err)
}
}
func TestProvider_impl(t *testing.T) {
var _ terraform.ResourceProvider = Provider()
}
func testAccPreCheck(t *testing.T) {
v := os.Getenv("OVH_ENDPOINT")
if v == "" {
t.Fatal("OVH_ENDPOINT must be set for acceptance tests")
}
v = os.Getenv("OVH_APPLICATION_KEY")
if v == "" {
t.Fatal("OVH_APPLICATION_KEY must be set for acceptance tests")
}
v = os.Getenv("OVH_APPLICATION_SECRET")
if v == "" {
t.Fatal("OVH_APPLICATION_SECRET must be set for acceptance tests")
}
v = os.Getenv("OVH_CONSUMER_KEY")
if v == "" {
t.Fatal("OVH_CONSUMER_KEY must be set for acceptance tests")
}
v = os.Getenv("OVH_VRACK")
if v == "" {
t.Fatal("OVH_VRACK must be set for acceptance tests")
}
v = os.Getenv("OVH_PUBLIC_CLOUD")
if v == "" {
t.Fatal("OVH_PUBLIC_CLOUD must be set for acceptance tests")
}
if testAccOVHClient == nil {
config := Config{
Endpoint: os.Getenv("OVH_ENDPOINT"),
ApplicationKey: os.Getenv("OVH_APPLICATION_KEY"),
ApplicationSecret: os.Getenv("OVH_APPLICATION_SECRET"),
ConsumerKey: os.Getenv("OVH_CONSUMER_KEY"),
}
if err := config.loadAndValidate(); err != nil {
t.Fatalf("couln't load OVH Client: %s", err)
} else {
testAccOVHClient = config.OVHClient
}
}
}
func testAccCheckVRackExists(t *testing.T) {
type vrackResponse struct {
Name string `json:"name"`
Description string `json:"description"`
}
r := vrackResponse{}
endpoint := fmt.Sprintf("/vrack/%s", os.Getenv("OVH_VRACK"))
err := testAccOVHClient.Get(endpoint, &r)
if err != nil {
t.Fatalf("Error: %q\n", err)
}
t.Logf("Read VRack %s -> name:'%s', desc:'%s' ", endpoint, r.Name, r.Description)
}
func testAccCheckPublicCloudExists(t *testing.T) {
type cloudProjectResponse struct {
ID string `json:"project_id"`
Status string `json:"status"`
Description string `json:"description"`
}
r := cloudProjectResponse{}
endpoint := fmt.Sprintf("/cloud/project/%s", os.Getenv("OVH_PUBLIC_CLOUD"))
err := testAccOVHClient.Get(endpoint, &r)
if err != nil {
t.Fatalf("Error: %q\n", err)
}
t.Logf("Read Cloud Project %s -> status: '%s', desc: '%s'", endpoint, r.Status, r.Description)
}