containerd/namespaces/context_test.go
Samuel Karp 9190f98e9c namespaces: Export env var and default value
Signed-off-by: Samuel Karp <skarp@amazon.com>
2017-06-21 17:38:07 -07:00

60 lines
1.2 KiB
Go

package namespaces
import (
"context"
"os"
"testing"
)
func TestContext(t *testing.T) {
ctx := context.Background()
namespace, ok := Namespace(ctx)
if ok {
t.Fatal("namespace should not be present")
}
if namespace != "" {
t.Fatalf("namespace should not be defined: got %q", namespace)
}
expected := "test"
nctx := WithNamespace(ctx, expected)
namespace, ok = Namespace(nctx)
if !ok {
t.Fatal("expected to find a namespace")
}
if namespace != expected {
t.Fatalf("unexpected namespace: %q != %q", namespace, expected)
}
}
func TestNamespaceFromEnv(t *testing.T) {
oldenv := os.Getenv(NamespaceEnvVar)
defer os.Setenv(NamespaceEnvVar, oldenv) // restore old env var
ctx := context.Background()
namespace, ok := Namespace(ctx)
if ok {
t.Fatal("namespace should not be present")
}
if namespace != "" {
t.Fatalf("namespace should not be defined: got %q", namespace)
}
expected := "test-namespace"
os.Setenv(NamespaceEnvVar, expected)
nctx := NamespaceFromEnv(ctx)
namespace, ok = Namespace(nctx)
if !ok {
t.Fatal("expected to find a namespace")
}
if namespace != expected {
t.Fatalf("unexpected namespace: %q != %q", namespace, expected)
}
}