diff --git a/builtin/providers/digitalocean/config.go b/builtin/providers/digitalocean/config.go index 8e1df53892..a81ff7a483 100644 --- a/builtin/providers/digitalocean/config.go +++ b/builtin/providers/digitalocean/config.go @@ -2,6 +2,7 @@ package digitalocean import ( "log" + "os" "github.com/pearkes/digitalocean" ) @@ -14,6 +15,13 @@ type Config struct { // ocean. // func (c *Config) Client() (*digitalocean.Client, error) { + + // If we have env vars set (like in the acc) tests, + // we need to override the values passed in here. + if v := os.Getenv("DIGITALOCEAN_TOKEN"); v != "" { + c.Token = v + } + client, err := digitalocean.NewClient(c.Token) log.Printf("[INFO] DigitalOcean Client configured for URL: %s", client.URL) diff --git a/builtin/providers/digitalocean/resource_provider_test.go b/builtin/providers/digitalocean/resource_provider_test.go index 464fd6cf00..836c1b2440 100644 --- a/builtin/providers/digitalocean/resource_provider_test.go +++ b/builtin/providers/digitalocean/resource_provider_test.go @@ -25,9 +25,16 @@ func TestResourceProvider_impl(t *testing.T) { func TestResourceProvider_Configure(t *testing.T) { rp := new(ResourceProvider) + var expectedToken string + + if v := os.Getenv("DIGITALOCEAN_TOKEN"); v != "foo" { + expectedToken = v + } else { + expectedToken = "foo" + } raw := map[string]interface{}{ - "token": "foo", + "token": expectedToken, } rawConfig, err := config.NewRawConfig(raw) @@ -41,7 +48,7 @@ func TestResourceProvider_Configure(t *testing.T) { } expected := Config{ - Token: "foo", + Token: expectedToken, } if !reflect.DeepEqual(rp.Config, expected) {