diff --git a/cmd/helm/fetch_test.go b/cmd/helm/fetch_test.go index 3958a6e25..8c1f2a74b 100644 --- a/cmd/helm/fetch_test.go +++ b/cmd/helm/fetch_test.go @@ -40,8 +40,6 @@ func TestFetchCmd(t *testing.T) { settings.Home = old os.RemoveAll(hh.String()) }() - srv := repotest.NewServer(hh.String()) - defer srv.Stop() // all flags will get "--home=TMDIR -d outdir" appended. tests := []struct { @@ -107,34 +105,11 @@ func TestFetchCmd(t *testing.T) { expectDir: true, expectVerify: true, }, - { - name: "Chart fetch using repo URL", - chart: "signtest", - expectFile: "./signtest-0.1.0.tgz", - flags: []string{"--repo", srv.URL()}, - }, - { - name: "Fail fetching non-existent chart on repo URL", - chart: "someChart", - flags: []string{"--repo", srv.URL()}, - failExpect: "Failed to fetch chart", - fail: true, - }, - { - name: "Specific version chart fetch using repo URL", - chart: "signtest", - expectFile: "./signtest-0.1.0.tgz", - flags: []string{"--repo", srv.URL(), "--version", "0.1.0"}, - }, - { - name: "Specific version chart fetch using repo URL", - chart: "signtest", - flags: []string{"--repo", srv.URL(), "--version", "0.2.0"}, - failExpect: "Failed to fetch chart version", - fail: true, - }, } + srv := repotest.NewServer(hh.String()) + defer srv.Stop() + if _, err := srv.CopyCharts("testdata/testcharts/*.tgz*"); err != nil { t.Fatal(err) } diff --git a/pkg/repo/chartrepo_test.go b/pkg/repo/chartrepo_test.go index f6d6df74e..d28ba605d 100644 --- a/pkg/repo/chartrepo_test.go +++ b/pkg/repo/chartrepo_test.go @@ -17,13 +17,9 @@ limitations under the License. package repo import ( - "io/ioutil" - "net/http" - "net/http/httptest" "os" "path/filepath" "reflect" - "strings" "testing" "time" @@ -189,82 +185,3 @@ func verifyIndex(t *testing.T, actual *IndexFile) { } } } - -// startLocalServerForTests Start the local helm server -func startLocalServerForTests(handler http.Handler) (*httptest.Server, error) { - if handler == nil { - fileBytes, err := ioutil.ReadFile("testdata/local-index.yaml") - if err != nil { - return nil, err - } - handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Write(fileBytes) - }) - } - - return httptest.NewServer(handler), nil -} - -func TestFindChartInRepoURL(t *testing.T) { - srv, err := startLocalServerForTests(nil) - if err != nil { - t.Fatal(err) - } - defer srv.Close() - - chartURL, err := FindChartInRepoURL(srv.URL, "nginx", "", "", "", "", getter.All(environment.EnvSettings{})) - if err != nil { - t.Errorf("%s", err) - } - if chartURL != "https://kubernetes-charts.storage.googleapis.com/nginx-0.2.0.tgz" { - t.Errorf("%s is not the valid URL", chartURL) - } - - chartURL, err = FindChartInRepoURL(srv.URL, "nginx", "0.1.0", "", "", "", getter.All(environment.EnvSettings{})) - if err != nil { - t.Errorf("%s", err) - } - if chartURL != "https://kubernetes-charts.storage.googleapis.com/nginx-0.1.0.tgz" { - t.Errorf("%s is not the valid URL", chartURL) - } -} - -func TestErrorFindChartInRepoURL(t *testing.T) { - _, err := FindChartInRepoURL("http://someserver/something", "nginx", "", "", "", "", getter.All(environment.EnvSettings{})) - if err == nil { - t.Errorf("Expected error for bad chart URL, but did not get any errors") - } - if err != nil && !strings.Contains(err.Error(), `Looks like "http://someserver/something" is not a valid chart repository or cannot be reached: Get http://someserver/something/index.yaml`) { - t.Errorf("Expected error for bad chart URL, but got a different error (%v)", err) - } - - srv, err := startLocalServerForTests(nil) - if err != nil { - t.Fatal(err) - } - defer srv.Close() - - _, err = FindChartInRepoURL(srv.URL, "nginx1", "", "", "", "", getter.All(environment.EnvSettings{})) - if err == nil { - t.Errorf("Expected error for chart not found, but did not get any errors") - } - if err != nil && err.Error() != `chart "nginx1" not found in `+srv.URL+` repository` { - t.Errorf("Expected error for chart not found, but got a different error (%v)", err) - } - - _, err = FindChartInRepoURL(srv.URL, "nginx1", "0.1.0", "", "", "", getter.All(environment.EnvSettings{})) - if err == nil { - t.Errorf("Expected error for chart not found, but did not get any errors") - } - if err != nil && err.Error() != `chart "nginx1" version "0.1.0" not found in `+srv.URL+` repository` { - t.Errorf("Expected error for chart not found, but got a different error (%v)", err) - } - - _, err = FindChartInRepoURL(srv.URL, "chartWithNoURL", "", "", "", "", getter.All(environment.EnvSettings{})) - if err == nil { - t.Errorf("Expected error for no chart URLs available, but did not get any errors") - } - if err != nil && err.Error() != `chart "chartWithNoURL" has no downloadable URLs` { - t.Errorf("Expected error for chart not found, but got a different error (%v)", err) - } -} diff --git a/pkg/repo/index_test.go b/pkg/repo/index_test.go index 17a1cc209..0072caf3b 100644 --- a/pkg/repo/index_test.go +++ b/pkg/repo/index_test.go @@ -18,6 +18,8 @@ package repo import ( "io/ioutil" + "net/http" + "net/http/httptest" "os" "path/filepath" "testing" @@ -129,10 +131,14 @@ func TestMerge(t *testing.T) { } func TestDownloadIndexFile(t *testing.T) { - srv, err := startLocalServerForTests(nil) + fileBytes, err := ioutil.ReadFile("testdata/local-index.yaml") if err != nil { t.Fatal(err) } + + srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Write(fileBytes) + })) defer srv.Close() dirName, err := ioutil.TempDir("", "tmp") @@ -175,8 +181,8 @@ func TestDownloadIndexFile(t *testing.T) { func verifyLocalIndex(t *testing.T, i *IndexFile) { numEntries := len(i.Entries) - if numEntries != 3 { - t.Errorf("Expected 3 entries in index file but got %d", numEntries) + if numEntries != 2 { + t.Errorf("Expected 2 entries in index file but got %d", numEntries) } alpine, ok := i.Entries["alpine"] diff --git a/pkg/repo/local_test.go b/pkg/repo/local_test.go index 1e5359dee..3e2ecbbcf 100644 --- a/pkg/repo/local_test.go +++ b/pkg/repo/local_test.go @@ -19,6 +19,7 @@ package repo import ( "io/ioutil" "net/http" + "net/http/httptest" "strings" "testing" ) @@ -42,10 +43,7 @@ func TestRepositoryServer(t *testing.T) { } s := &RepositoryServer{RepoPath: "testdata/server"} - srv, err := startLocalServerForTests(s) - if err != nil { - t.Fatal(err) - } + srv := httptest.NewServer(s) defer srv.Close() for _, tt := range tests { diff --git a/pkg/repo/testdata/local-index-unordered.yaml b/pkg/repo/testdata/local-index-unordered.yaml index 7482baaae..ec529f110 100644 --- a/pkg/repo/testdata/local-index-unordered.yaml +++ b/pkg/repo/testdata/local-index-unordered.yaml @@ -37,12 +37,3 @@ entries: - small - sumtin digest: "sha256:1234567890abcdef" - chartWithNoURL: - - name: chartWithNoURL - description: string - version: 1.0.0 - home: https://github.com/something - keywords: - - small - - sumtin - digest: "sha256:1234567890abcdef" diff --git a/pkg/repo/testdata/local-index.yaml b/pkg/repo/testdata/local-index.yaml index e680d2a3e..f64c54c1b 100644 --- a/pkg/repo/testdata/local-index.yaml +++ b/pkg/repo/testdata/local-index.yaml @@ -37,12 +37,3 @@ entries: - small - sumtin digest: "sha256:1234567890abcdef" - chartWithNoURL: - - name: chartWithNoURL - description: string - version: 1.0.0 - home: https://github.com/something - keywords: - - small - - sumtin - digest: "sha256:1234567890abcdef"