diff --git a/test/library/env.go b/test/library/env.go index 16a4667d..c3479a37 100644 --- a/test/library/env.go +++ b/test/library/env.go @@ -4,16 +4,12 @@ package library import ( - "context" "io/ioutil" "os" "strings" "testing" - "time" "github.com/stretchr/testify/require" - k8serrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/yaml" idpv1alpha1 "go.pinniped.dev/generated/1.19/apis/idp/v1alpha1" @@ -46,62 +42,6 @@ func IntegrationEnv(t *testing.T) *TestEnv { t.Helper() SkipUnlessIntegration(t) - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - secretNamespace := getDefaultedEnv("PINNIPED_NAMESPACE", "integration") - secretName := getDefaultedEnv("PINNIPED_ENVIRONMENT", "pinniped-test-env") - - secret, err := NewClientset(t).CoreV1().Secrets(secretNamespace).Get(ctx, secretName, metav1.GetOptions{}) - if k8serrors.IsNotFound(err) { - return envFromOSEnviron(t) - } - require.NoErrorf(t, err, "could not fetch test environment from %s/%s", secretNamespace, secretName) - - yamlEnv, ok := secret.Data["env.yaml"] - require.True(t, ok, "test environment secret %s/%s did not contain expected 'env.yaml' key", secretNamespace, secretName) - - var result TestEnv - err = yaml.Unmarshal(yamlEnv, &result) - require.NoErrorf(t, err, "test environment secret %s/%s contained invalid YAML", secretNamespace, secretName) - result.t = t - return &result -} - -func (e *TestEnv) HasCapability(cap TestClusterCapability) bool { - e.t.Helper() - isCapable, capabilityWasDescribed := e.Capabilities[cap] - require.True(e.t, capabilityWasDescribed, `the cluster's "%s" capability was not described`, cap) - return isCapable -} - -func (e *TestEnv) WithCapability(cap TestClusterCapability) *TestEnv { - e.t.Helper() - if !e.HasCapability(cap) { - e.t.Skipf(`skipping integration test because cluster lacks the "%s" capability`, cap) - } - return e -} - -func (e *TestEnv) WithoutCapability(cap TestClusterCapability) *TestEnv { - e.t.Helper() - if e.HasCapability(cap) { - e.t.Skipf(`skipping integration test because cluster has the "%s" capability`, cap) - } - return e -} - -func getDefaultedEnv(name, defaultValue string) string { - if val := os.Getenv(name); val != "" { - return val - } - return defaultValue -} - -// envFromOSEnviron is a (temporary?) helper to pull information from os.Environ instead of the test cluster. -func envFromOSEnviron(t *testing.T) *TestEnv { - t.Helper() - capabilitiesDescriptionYAML := os.Getenv("PINNIPED_CLUSTER_CAPABILITY_YAML") capabilitiesDescriptionFile := os.Getenv("PINNIPED_CLUSTER_CAPABILITY_FILE") require.NotEmptyf(t, @@ -135,3 +75,26 @@ func envFromOSEnviron(t *testing.T) *TestEnv { result.t = t return &result } + +func (e *TestEnv) HasCapability(cap TestClusterCapability) bool { + e.t.Helper() + isCapable, capabilityWasDescribed := e.Capabilities[cap] + require.True(e.t, capabilityWasDescribed, `the cluster's "%s" capability was not described`, cap) + return isCapable +} + +func (e *TestEnv) WithCapability(cap TestClusterCapability) *TestEnv { + e.t.Helper() + if !e.HasCapability(cap) { + e.t.Skipf(`skipping integration test because cluster lacks the "%s" capability`, cap) + } + return e +} + +func (e *TestEnv) WithoutCapability(cap TestClusterCapability) *TestEnv { + e.t.Helper() + if e.HasCapability(cap) { + e.t.Skipf(`skipping integration test because cluster has the "%s" capability`, cap) + } + return e +}