Tweak file path handling and logging in test.

This commit is contained in:
Jeffrey Regan
2019-09-18 11:14:41 -07:00
parent a3103f1e62
commit 274b5c3b4e
3 changed files with 40 additions and 17 deletions

View File

@@ -8,6 +8,7 @@ import (
"fmt"
"unicode/utf8"
"github.com/pkg/errors"
"k8s.io/api/core/v1"
"sigs.k8s.io/kustomize/v3/pkg/types"
)
@@ -28,13 +29,13 @@ func (f *Factory) MakeConfigMap(
args *types.ConfigMapArgs) (*v1.ConfigMap, error) {
all, err := f.ldr.LoadKvPairs(args.GeneratorArgs)
if err != nil {
return nil, err
return nil, errors.Wrap(err, "loading KV pairs")
}
cm := makeFreshConfigMap(args)
for _, p := range all {
err = f.addKvToConfigMap(cm, p)
if err != nil {
return nil, err
return nil, errors.Wrap(err, "trouble mapping")
}
}
if f.options != nil {

View File

@@ -4,6 +4,7 @@
package configmapandsecret
import (
"path/filepath"
"reflect"
"testing"
@@ -86,7 +87,9 @@ func TestConstructConfigMap(t *testing.T) {
GeneratorArgs: types.GeneratorArgs{
Name: "envConfigMap",
DataSources: types.DataSources{
EnvSources: []string{"configmap/app.env"},
EnvSources: []string{
filepath.Join("configmap", "app.env"),
},
},
},
},
@@ -99,7 +102,10 @@ func TestConstructConfigMap(t *testing.T) {
GeneratorArgs: types.GeneratorArgs{
Name: "fileConfigMap",
DataSources: types.DataSources{
FileSources: []string{"configmap/app-init.ini", "configmap/app.bin"},
FileSources: []string{
filepath.Join("configmap", "app-init.ini"),
filepath.Join("configmap", "app.bin"),
},
},
},
},
@@ -126,9 +132,15 @@ func TestConstructConfigMap(t *testing.T) {
}
fSys := fs.MakeFakeFS()
fSys.WriteFile("/configmap/app.env", []byte("DB_USERNAME=admin\nDB_PASSWORD=somepw\n"))
fSys.WriteFile("/configmap/app-init.ini", []byte("FOO=bar\nBAR=baz\n"))
fSys.WriteFile("/configmap/app.bin", []byte{0xff, 0xfd})
fSys.WriteFile(
fSys.RPath("configmap", "app.env"),
[]byte("DB_USERNAME=admin\nDB_PASSWORD=somepw\n"))
fSys.WriteFile(
fSys.RPath("configmap", "app-init.ini"),
[]byte("FOO=bar\nBAR=baz\n"))
fSys.WriteFile(
fSys.RPath("configmap", "app.bin"),
[]byte{0xff, 0xfd})
ldr := loader.NewFileLoaderAtRoot(validators.MakeFakeValidator(), fSys)
for _, tc := range testCases {
f := NewFactory(ldr, tc.options)

View File

@@ -36,12 +36,15 @@ type fakeFs struct {
// MakeFakeFS returns an instance of fakeFs with no files in it.
func MakeFakeFS() *fakeFs {
result := &fakeFs{m: map[string]*FakeFile{}}
result.Mkdir("/")
result.Mkdir(separator)
return result
}
// kustomizationContent is used in tests.
const kustomizationContent = `apiVersion: kustomize.config.k8s.io/v1beta1
const (
separator = string(filepath.Separator)
doubleSep = separator + separator
// kustomizationContent is used in tests.
kustomizationContent = `apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namePrefix: some-prefix
nameSuffix: some-suffix
@@ -60,6 +63,7 @@ configMapGenerator: []
# There could be secrets in Base, if just using a fork/rebase workflow
secretGenerator: []
`
)
// Create assures a fake file appears in the in-memory file system.
func (fs *fakeFs) Create(name string) (File, error) {
@@ -69,6 +73,11 @@ func (fs *fakeFs) Create(name string) (File, error) {
return fs.m[name], nil
}
// RPath returns a rooted path, e.g. "/hey/foo" as opposed to "hey/foo".
func (fs *fakeFs) RPath(elem ...string) string {
return separator + filepath.Join(elem...)
}
// Mkdir assures a fake directory appears in the in-memory file system.
func (fs *fakeFs) Mkdir(name string) error {
fs.m[name] = makeDir(name)
@@ -139,8 +148,8 @@ func (fs *fakeFs) IsDir(name string) bool {
if found && f.dir {
return true
}
if !strings.HasSuffix(name, "/") {
name = name + "/"
if !strings.HasSuffix(name, separator) {
name = name + separator
}
for k := range fs.m {
if strings.HasPrefix(k, name) {
@@ -210,7 +219,8 @@ func (fs *fakeFs) lstat(path string) (*Fakefileinfo, error) {
func (fs *fakeFs) join(elem ...string) string {
for i, e := range elem {
if e != "" {
return strings.Replace(strings.Join(elem[i:], "/"), "//", "/", -1)
return strings.Replace(
strings.Join(elem[i:], separator), doubleSep, separator, -1)
}
}
return ""
@@ -218,15 +228,15 @@ func (fs *fakeFs) join(elem ...string) string {
func (fs *fakeFs) readDirNames(path string) []string {
var names []string
if !strings.HasSuffix(path, "/") {
path += "/"
if !strings.HasSuffix(path, separator) {
path += separator
}
pathSegments := strings.Count(path, "/")
pathSegments := strings.Count(path, separator)
for name := range fs.m {
if name == path {
continue
}
if strings.Count(name, "/") > pathSegments {
if strings.Count(name, separator) > pathSegments {
continue
}
if strings.HasPrefix(name, path) {