fix(windows): fix unit tests on Windows (#4897)

Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
pull/4956/head
Matthew Fisher 6 years ago committed by GitHub
parent d3357fad37
commit 97465abda0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -6,10 +6,10 @@ environment:
install:
- ps: iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/fishworks/gofish/master/scripts/install.ps1'))
- gofish init
- gofish install dep
- dep ensure -v
- gofish install glide
- glide install --strip-vendor
cache:
- vendor -> Gopkg.lock
- vendor -> glide.lock
build: "off"
deploy: "off"
test_script:

@ -29,6 +29,7 @@ import (
"github.com/spf13/cobra"
"k8s.io/client-go/util/homedir"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm/environment"
"k8s.io/helm/pkg/helm/helmpath"
@ -167,7 +168,7 @@ func TestRootCmd(t *testing.T) {
{
name: "defaults",
args: []string{"home"},
home: filepath.Join(os.Getenv("HOME"), "/.helm"),
home: filepath.Join(homedir.HomeDir(), ".helm"),
},
{
name: "with --home set",
@ -236,7 +237,7 @@ func TestTLSFlags(t *testing.T) {
homePath := os.Getenv("HELM_HOME")
if homePath == "" {
homePath = filepath.Join(os.Getenv("HOME"), ".helm")
homePath = filepath.Join(homedir.HomeDir(), ".helm")
}
home := helmpath.Home(homePath)

@ -17,10 +17,12 @@ package main
import (
"bytes"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"regexp"
"runtime"
"testing"
"github.com/spf13/cobra"
@ -53,6 +55,13 @@ func TestSetVersion(t *testing.T) {
func TestPackage(t *testing.T) {
statExe := "stat"
statFileMsg := "no such file or directory"
if runtime.GOOS == "windows" {
statExe = "FindFirstFile"
statFileMsg = "The system cannot find the file specified."
}
tests := []struct {
name string
flags map[string]string
@ -106,7 +115,7 @@ func TestPackage(t *testing.T) {
name: "package --destination does-not-exist",
args: []string{"testdata/testcharts/alpine"},
flags: map[string]string{"destination": "does-not-exist"},
expect: "stat does-not-exist: no such file or directory",
expect: fmt.Sprintf("Failed to save: %s does-not-exist: %s", statExe, statFileMsg),
err: true,
},
{

@ -75,7 +75,7 @@ func TestTemplateCmd(t *testing.T) {
{
name: "check_execute_absolute",
desc: "verify --execute single template",
args: []string{subchart1ChartPath, "-x", subchart1AbsChartPath + "/" + "templates/service.yaml", "--set", "service.name=apache"},
args: []string{subchart1ChartPath, "-x", filepath.Join(subchart1AbsChartPath, "templates", "service.yaml"), "--set", "service.name=apache"},
expectKey: "subchart1/templates/service.yaml",
expectValue: "protocol: TCP\n name: apache",
},

@ -28,7 +28,7 @@ func TestVerifyCmd(t *testing.T) {
statPathMsg := "no such file or directory"
statFileMsg := statPathMsg
if runtime.GOOS == "windows" {
statExe = "GetFileAttributesEx"
statExe = "FindFirstFile"
statPathMsg = "The system cannot find the path specified."
statFileMsg = "The system cannot find the file specified."
}

@ -43,6 +43,7 @@ import (
// If a .helmignore file is present, the directory loader will skip loading any files
// matching it. But .helmignore is not evaluated when reading out of an archive.
func Load(name string) (*chart.Chart, error) {
name = filepath.FromSlash(name)
fi, err := os.Stat(name)
if err != nil {
return nil, err

@ -15,6 +15,8 @@ limitations under the License.
package chartutil
import (
"os"
"path/filepath"
"sort"
"testing"
@ -426,7 +428,12 @@ func TestDependentChartWithSubChartsHelmignore(t *testing.T) {
}
func TestDependentChartsWithSubChartsSymlink(t *testing.T) {
c, err := Load("testdata/joonix")
joonix := "testdata/joonix"
if err := os.Symlink(filepath.Join("..", "..", "frobnitz"), filepath.Join(joonix, "charts", "frobnitz")); err != nil {
t.Fatal(err)
}
defer os.RemoveAll(filepath.Join(joonix, "charts", "frobnitz"))
c, err := Load(joonix)
if err != nil {
t.Fatalf("Failed to load testdata: %s", err)
}

@ -18,6 +18,7 @@ package getter
import (
"os"
"path/filepath"
"runtime"
"strings"
"testing"
@ -67,6 +68,10 @@ func TestCollectPlugins(t *testing.T) {
}
func TestPluginGetter(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("TODO: refactor this test to work on windows")
}
oldhh := os.Getenv("HELM_HOME")
defer os.Setenv("HELM_HOME", oldhh)
os.Setenv("HELM_HOME", "")

@ -22,6 +22,7 @@ import (
"fmt"
"io/ioutil"
"os"
"path"
"path/filepath"
"sort"
"strings"
@ -110,7 +111,7 @@ func (i IndexFile) Add(md *chart.Metadata, filename, baseURL, digest string) {
_, file := filepath.Split(filename)
u, err = urlutil.URLJoin(baseURL, file)
if err != nil {
u = filepath.Join(baseURL, file)
u = path.Join(baseURL, file)
}
}
cr := &ChartVersion{
@ -246,9 +247,11 @@ func IndexDirectory(dir, baseURL string) (*IndexFile, error) {
var parentDir string
parentDir, fname = filepath.Split(fname)
// filepath.Split appends an extra slash to the end of parentDir. We want to strip that out.
parentDir = strings.TrimSuffix(parentDir, string(os.PathSeparator))
parentURL, err := urlutil.URLJoin(baseURL, parentDir)
if err != nil {
parentURL = filepath.Join(baseURL, parentDir)
parentURL = path.Join(baseURL, parentDir)
}
c, err := chartutil.Load(arch)

@ -272,7 +272,7 @@ func verifyLocalIndex(t *testing.T, i *IndexFile) {
}
func TestIndexDirectory(t *testing.T) {
dir := "testdata/repository"
dir := filepath.Join("testdata", "repository")
index, err := IndexDirectory(dir, "http://localhost:8080")
if err != nil {
t.Fatal(err)

Loading…
Cancel
Save