fixes read absolute path woth readFile (#475)

This commit is contained in:
kinzal 2019-02-15 12:49:35 +09:00 committed by KUOKA Yusuke
parent 35fd5ff117
commit c6c54fdbed
2 changed files with 28 additions and 2 deletions

View File

@ -114,7 +114,12 @@ func (c *Context) Exec(command string, args []interface{}, inputs ...string) (st
} }
func (c *Context) ReadFile(filename string) (string, error) { func (c *Context) ReadFile(filename string) (string, error) {
path := filepath.Join(c.basePath, filename) var path string
if filepath.IsAbs(filename) {
path = filename
} else {
path = filepath.Join(c.basePath, filename)
}
bytes, err := c.readFile(path) bytes, err := c.readFile(path)
if err != nil { if err != nil {

View File

@ -2,6 +2,7 @@ package tmpl
import ( import (
"fmt" "fmt"
"path/filepath"
"reflect" "reflect"
"testing" "testing"
) )
@ -11,7 +12,27 @@ func TestReadFile(t *testing.T) {
bar: BAR bar: BAR
` `
expectedFilename := "values.yaml" expectedFilename := "values.yaml"
ctx := &Context{readFile: func(filename string) ([]byte, error) { ctx := &Context{basePath: ".", readFile: func(filename string) ([]byte, error) {
if filename != expectedFilename {
return nil, fmt.Errorf("unexpected filename: expected=%v, actual=%s", expectedFilename, filename)
}
return []byte(expected), nil
}}
actual, err := ctx.ReadFile(expectedFilename)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if !reflect.DeepEqual(actual, expected) {
t.Errorf("unexpected result: expected=%v, actual=%v", expected, actual)
}
}
func TestReadFile_PassAbsPath(t *testing.T) {
expected := `foo:
bar: BAR
`
expectedFilename, _ := filepath.Abs("values.yaml")
ctx := &Context{basePath: ".", readFile: func(filename string) ([]byte, error) {
if filename != expectedFilename { if filename != expectedFilename {
return nil, fmt.Errorf("unexpected filename: expected=%v, actual=%s", expectedFilename, filename) return nil, fmt.Errorf("unexpected filename: expected=%v, actual=%s", expectedFilename, filename)
} }