forked from TrueCloudLab/lego
47219adc00
Different DNS providers were handling credentials in different ways. Some were reading credential environment variables in cli_handlers.go and then passing them into the NewDNSProvider function, while others were reading the environment variables within their NewDNSProvider functions. This change replaces each DNS challenge's NewDNSProvider function with two new functions: (1) a NewDNSProvider function that takes no parameters and uses the environment to read credentials, and (2) a NewDNSProviderCredentials that takes credentials as parameters.
79 lines
1.8 KiB
Go
79 lines
1.8 KiB
Go
package dnsimple
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var (
|
|
dnsimpleLiveTest bool
|
|
dnsimpleEmail string
|
|
dnsimpleAPIKey string
|
|
dnsimpleDomain string
|
|
)
|
|
|
|
func init() {
|
|
dnsimpleEmail = os.Getenv("DNSIMPLE_EMAIL")
|
|
dnsimpleAPIKey = os.Getenv("DNSIMPLE_API_KEY")
|
|
dnsimpleDomain = os.Getenv("DNSIMPLE_DOMAIN")
|
|
if len(dnsimpleEmail) > 0 && len(dnsimpleAPIKey) > 0 && len(dnsimpleDomain) > 0 {
|
|
dnsimpleLiveTest = true
|
|
}
|
|
}
|
|
|
|
func restoreDNSimpleEnv() {
|
|
os.Setenv("DNSIMPLE_EMAIL", dnsimpleEmail)
|
|
os.Setenv("DNSIMPLE_API_KEY", dnsimpleAPIKey)
|
|
}
|
|
|
|
func TestNewDNSProviderValid(t *testing.T) {
|
|
os.Setenv("DNSIMPLE_EMAIL", "")
|
|
os.Setenv("DNSIMPLE_API_KEY", "")
|
|
_, err := NewDNSProviderCredentials("example@example.com", "123")
|
|
assert.NoError(t, err)
|
|
restoreDNSimpleEnv()
|
|
}
|
|
func TestNewDNSProviderValidEnv(t *testing.T) {
|
|
os.Setenv("DNSIMPLE_EMAIL", "example@example.com")
|
|
os.Setenv("DNSIMPLE_API_KEY", "123")
|
|
_, err := NewDNSProvider()
|
|
assert.NoError(t, err)
|
|
restoreDNSimpleEnv()
|
|
}
|
|
|
|
func TestNewDNSProviderMissingCredErr(t *testing.T) {
|
|
os.Setenv("DNSIMPLE_EMAIL", "")
|
|
os.Setenv("DNSIMPLE_API_KEY", "")
|
|
_, err := NewDNSProvider()
|
|
assert.EqualError(t, err, "DNSimple credentials missing")
|
|
restoreDNSimpleEnv()
|
|
}
|
|
|
|
func TestLiveDNSimplePresent(t *testing.T) {
|
|
if !dnsimpleLiveTest {
|
|
t.Skip("skipping live test")
|
|
}
|
|
|
|
provider, err := NewDNSProviderCredentials(dnsimpleEmail, dnsimpleAPIKey)
|
|
assert.NoError(t, err)
|
|
|
|
err = provider.Present(dnsimpleDomain, "", "123d==")
|
|
assert.NoError(t, err)
|
|
}
|
|
|
|
func TestLiveDNSimpleCleanUp(t *testing.T) {
|
|
if !dnsimpleLiveTest {
|
|
t.Skip("skipping live test")
|
|
}
|
|
|
|
time.Sleep(time.Second * 1)
|
|
|
|
provider, err := NewDNSProviderCredentials(dnsimpleEmail, dnsimpleAPIKey)
|
|
assert.NoError(t, err)
|
|
|
|
err = provider.CleanUp(dnsimpleDomain, "", "123d==")
|
|
assert.NoError(t, err)
|
|
}
|