Consolidate test harness to one package.

This commit is contained in:
Jeffrey Regan
2019-12-02 09:28:50 -08:00
parent ce935448c1
commit 382c330f5b
64 changed files with 676 additions and 710 deletions

View File

@@ -23,16 +23,16 @@ type FakeLoader struct {
// The initialDir argument should be an absolute file path.
func NewFakeLoader(initialDir string) FakeLoader {
return NewFakeLoaderWithRestrictor(
loader.RestrictionRootOnly, initialDir)
loader.RestrictionRootOnly, filesys.MakeFsInMemory(), initialDir)
}
// NewFakeLoaderWithRestrictor returns a Loader that
// uses a fake filesystem.
// The initialDir argument should be an absolute file path.
func NewFakeLoaderWithRestrictor(
lr loader.LoadRestrictorFunc, initialDir string) FakeLoader {
// Create fake filesystem and inject it into initial Loader.
fSys := filesys.MakeFsInMemory()
lr loader.LoadRestrictorFunc,
fSys filesys.FileSystem,
initialDir string) FakeLoader {
fSys.Mkdir(initialDir)
ldr, err := loader.NewLoader(lr, initialDir, fSys)
if err != nil {

View File

@@ -7,7 +7,9 @@ import (
"encoding/base64"
"testing"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
@@ -17,7 +19,8 @@ import (
// high level tests.
func TestMakeCustomizedResMap(t *testing.T) {
th := kusttest_test.NewKustTestHarness(t, "/whatever")
fSys := filesys.MakeFsInMemory()
th := kusttest_test.MakeHarnessWithFs(t, fSys)
th.WriteK("/whatever", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
@@ -68,8 +71,10 @@ metadata:
{"op": "add", "path": "/spec/replica", "value": "3"}
]`)
resFactory := resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())
resources := []*resource.Resource{
th.RF().FromMapWithName("dply1", map[string]interface{}{
resFactory.FromMapWithName("dply1", map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": map[string]interface{}{
@@ -101,7 +106,7 @@ metadata:
},
},
}),
th.RF().FromMapWithName("ns1", map[string]interface{}{
resFactory.FromMapWithName("ns1", map[string]interface{}{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": map[string]interface{}{
@@ -114,7 +119,7 @@ metadata:
},
},
}),
th.RF().FromMapWithName("literalConfigMap",
resFactory.FromMapWithName("literalConfigMap",
map[string]interface{}{
"apiVersion": "v1",
"kind": "ConfigMap",
@@ -133,7 +138,7 @@ metadata:
"DB_PASSWORD": "somepw",
},
}),
th.RF().FromMapWithName("secret",
resFactory.FromMapWithName("secret",
map[string]interface{}{
"apiVersion": "v1",
"kind": "Secret",
@@ -162,7 +167,8 @@ metadata:
}
}
actual, err := th.MakeKustTarget().MakeCustomizedResMap()
actual, err := makeKustTargetWithRf(
t, fSys, "/whatever", resFactory).MakeCustomizedResMap()
if err != nil {
t.Fatalf("unexpected Resources error %v", err)
}

View File

@@ -0,0 +1,48 @@
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package target_test
import (
"testing"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/internal/k8sdeps/transformer"
"sigs.k8s.io/kustomize/api/internal/loadertest"
pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
"sigs.k8s.io/kustomize/api/internal/target"
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/api/konfig"
"sigs.k8s.io/kustomize/api/loader"
"sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource"
valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
)
func makeKustTarget(
t *testing.T,
fSys filesys.FileSystem, path string) *target.KustTarget {
return makeKustTargetWithRf(
t, fSys, path,
resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
}
func makeKustTargetWithRf(
t *testing.T,
fSys filesys.FileSystem, path string,
resFact *resource.Factory) *target.KustTarget {
rf := resmap.NewFactory(resFact, transformer.NewFactoryImpl())
pc := konfig.DisabledPluginConfig()
kt := target.NewKustTarget(
loadertest.NewFakeLoaderWithRestrictor(
loader.RestrictionRootOnly, fSys, path),
valtest_test.MakeFakeValidator(),
rf,
transformer.NewFactoryImpl(),
pLdr.NewLoader(pc, rf))
err := kt.Load()
if err != nil {
t.Fatalf("Unexpected construction error %v", err)
}
return kt
}

View File

@@ -48,7 +48,7 @@ var someVars = []types.Var{
}
func TestGetAllVarsSimple(t *testing.T) {
th := kusttest_test.NewKustTestHarness(t, "/app")
th := kusttest_test.MakeHarness(t)
th.WriteK("/app", `
vars:
- name: AWARD
@@ -64,7 +64,8 @@ vars:
name: heron
apiVersion: v300
`)
ra, err := th.MakeKustTarget().AccumulateTarget()
ra, err := makeKustTarget(
t, th.GetFSys(), "/app").AccumulateTarget()
if err != nil {
t.Fatalf("Err: %v", err)
}
@@ -83,7 +84,7 @@ vars:
}
func TestGetAllVarsNested(t *testing.T) {
th := kusttest_test.NewKustTestHarness(t, "/app/overlays/o2")
th := kusttest_test.MakeHarness(t)
th.WriteK("/app/base", `
vars:
- name: AWARD
@@ -117,7 +118,9 @@ vars:
resources:
- ../o1
`)
ra, err := th.MakeKustTarget().AccumulateTarget()
ra, err := makeKustTarget(
t, th.GetFSys(), "/app/overlays/o2").AccumulateTarget()
if err != nil {
t.Fatalf("Err: %v", err)
}
@@ -139,7 +142,7 @@ resources:
}
func TestVarCollisionsForbidden(t *testing.T) {
th := kusttest_test.NewKustTestHarness(t, "/app/overlays/o2")
th := kusttest_test.MakeHarness(t)
th.WriteK("/app/base", `
vars:
- name: AWARD
@@ -173,7 +176,8 @@ vars:
resources:
- ../o1
`)
_, err := th.MakeKustTarget().AccumulateTarget()
_, err := makeKustTarget(
t, th.GetFSys(), "/app/overlays/o2").AccumulateTarget()
if err == nil {
t.Fatalf("expected var collision")
}