Simplify some of the plugin testing code.

This commit is contained in:
Jeffrey Regan
2019-05-17 14:51:00 -07:00
parent f9c631e9ee
commit 3a85fcd365
23 changed files with 110 additions and 362 deletions

View File

@@ -1,18 +1,5 @@
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package kusttest_test
@@ -49,6 +36,11 @@ func NewKustTestHarness(t *testing.T, path string) *KustTestHarness {
t, path, plugin.DefaultPluginConfig())
}
func NewKustTestPluginHarness(t *testing.T, path string) *KustTestHarness {
return NewKustTestHarnessWithPluginConfig(
t, path, plugin.ActivePluginConfig())
}
func NewKustTestHarnessWithPluginConfig(
t *testing.T, path string,
pc *types.PluginConfig) *KustTestHarness {

View File

@@ -20,9 +20,7 @@ import (
"fmt"
"os"
"os/exec"
"path"
"path/filepath"
"runtime"
"time"
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
@@ -51,15 +49,7 @@ func DefaultSrcRoot() (string, error) {
os.Getenv("GOPATH"), "src",
pgmconfig.DomainName,
pgmconfig.ProgramName, pgmconfig.PluginRoot)
if FileExists(root) {
return root, nil
}
nope = append(nope, root)
// get the root kustomize source directory when
// GOPATH is not set
_, filename, _, _ := runtime.Caller(1)
root = path.Join(path.Dir(filename), "../..", pgmconfig.PluginRoot)
if FileExists(root) {
return root, nil
}
@@ -93,6 +83,11 @@ func (b *Compiler) ObjRoot() string {
return b.objRoot
}
// SrcRoot is where to find src.
func (b *Compiler) SrcRoot() string {
return b.srcRoot
}
func goBin() string {
return filepath.Join(os.Getenv("GOROOT"), "bin", "go")
}

View File

@@ -1,18 +1,5 @@
/*
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package plugins_test
@@ -20,12 +7,12 @@ import (
"testing"
"sigs.k8s.io/kustomize/internal/loadertest"
"sigs.k8s.io/kustomize/internal/plugintest"
"sigs.k8s.io/kustomize/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
kvplugin "sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
"sigs.k8s.io/kustomize/pkg/plugins"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/plugin"
)
const (
@@ -56,7 +43,7 @@ port: "12345"
)
func TestLoader(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set()
tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -67,7 +54,7 @@ func TestLoader(t *testing.T) {
rmF := resmap.NewFactory(resource.NewFactory(
kunstruct.NewKunstructuredFactoryImpl()))
l := plugins.NewLoader(plugin.ActivePluginConfig(), rmF)
l := plugins.NewLoader(kvplugin.ActivePluginConfig(), rmF)
if l == nil {
t.Fatal("expect non-nil loader")
}

View File

@@ -1,20 +1,7 @@
// +build notravis
/*
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
// Disabled on travis, because don't want to install helm on travis.
@@ -23,9 +10,8 @@ package target_test
import (
"testing"
"sigs.k8s.io/kustomize/internal/plugintest"
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
"sigs.k8s.io/kustomize/pkg/kusttest"
"sigs.k8s.io/kustomize/plugin"
)
// This is an example of using a helm chart as a base,
@@ -42,14 +28,13 @@ import (
// TODO: Download and inflate the chart, and check that
// in for the test.
func TestChartInflatorPlugin(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set()
tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildExecPlugin(
"someteam.example.com", "v1", "ChartInflator")
th := kusttest_test.NewKustTestHarnessWithPluginConfig(
t, "/app", plugin.ActivePluginConfig())
th := kusttest_test.NewKustTestPluginHarness(t, "/app")
th.WriteK("/app", `
generators:
- chartInflator.yaml

View File

@@ -1,18 +1,5 @@
/*
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package target_test
@@ -22,9 +9,8 @@ import (
"path/filepath"
"testing"
"sigs.k8s.io/kustomize/internal/plugintest"
"sigs.k8s.io/kustomize/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
kvplugin "sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
"sigs.k8s.io/kustomize/k8sdeps/transformer"
"sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/kusttest"
@@ -34,10 +20,11 @@ import (
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/target"
"sigs.k8s.io/kustomize/pkg/types"
"sigs.k8s.io/kustomize/plugin"
)
func TestPluginDir(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set()
tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildExecPlugin(
@@ -77,9 +64,11 @@ metadata:
}
rf := resmap.NewFactory(resource.NewFactory(
kunstruct.NewKunstructuredFactoryWithGeneratorArgs(
&types.GeneratorMetaArgs{PluginConfig: plugin.ActivePluginConfig()})))
&types.GeneratorMetaArgs{
PluginConfig: kvplugin.ActivePluginConfig(),
})))
pl := plugins.NewLoader(plugin.ActivePluginConfig(), rf)
pl := plugins.NewLoader(kvplugin.ActivePluginConfig(), rf)
tg, err := target.NewKustTarget(ldr, rf, transformer.NewFactoryImpl(), pl)
if err != nil {
t.Fatalf("err %v", err)

View File

@@ -1,27 +1,13 @@
/*
Copyright 2019 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package target_test
import (
"testing"
"sigs.k8s.io/kustomize/internal/plugintest"
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
"sigs.k8s.io/kustomize/pkg/kusttest"
"sigs.k8s.io/kustomize/plugin"
)
func writeDeployment(th *kusttest_test.KustTestHarness, path string) {
@@ -61,7 +47,7 @@ metadata:
}
func TestOrderedTransformers(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set()
tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -70,8 +56,7 @@ func TestOrderedTransformers(t *testing.T) {
tc.BuildGoPlugin(
"someteam.example.com", "v1", "DatePrefixer")
th := kusttest_test.NewKustTestHarnessWithPluginConfig(
t, "/app", plugin.ActivePluginConfig())
th := kusttest_test.NewKustTestPluginHarness(t, "/app")
th.WriteK("/app", `
resources:
- deployment.yaml
@@ -107,14 +92,13 @@ spec:
}
func TestSedTransformer(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set()
tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildExecPlugin(
"someteam.example.com", "v1", "SedTransformer")
th := kusttest_test.NewKustTestHarnessWithPluginConfig(
t, "/app", plugin.ActivePluginConfig())
th := kusttest_test.NewKustTestPluginHarness(t, "/app")
th.WriteK("/app", `
resources:
- configmap.yaml
@@ -177,7 +161,7 @@ metadata:
}
func TestTransformedTransformers(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set()
tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -186,8 +170,7 @@ func TestTransformedTransformers(t *testing.T) {
tc.BuildGoPlugin(
"someteam.example.com", "v1", "DatePrefixer")
th := kusttest_test.NewKustTestHarnessWithPluginConfig(
t, "/app/overlay", plugin.ActivePluginConfig())
th := kusttest_test.NewKustTestPluginHarness(t, "/app/overlay")
th.WriteK("/app/base", `
resources: