mirror of https://github.com/helm/helm
parent
d36615e3cb
commit
4bb36c89ab
@ -1,41 +0,0 @@
|
|||||||
package repo
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
const testfile = "testdata/local-index.yaml"
|
|
||||||
|
|
||||||
func TestLoadIndexFile(t *testing.T) {
|
|
||||||
cf, err := LoadIndexFile(testfile)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("Failed to load index file: %s", err)
|
|
||||||
}
|
|
||||||
if len(cf.Entries) != 2 {
|
|
||||||
t.Errorf("Expected 2 entries in the index file, but got %d", len(cf.Entries))
|
|
||||||
}
|
|
||||||
nginx := false
|
|
||||||
alpine := false
|
|
||||||
for k, e := range cf.Entries {
|
|
||||||
if k == "nginx-0.1.0" {
|
|
||||||
if e.Name == "nginx" {
|
|
||||||
if len(e.Keywords) == 3 {
|
|
||||||
nginx = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if k == "alpine-1.0.0" {
|
|
||||||
if e.Name == "alpine" {
|
|
||||||
if len(e.Keywords) == 4 {
|
|
||||||
alpine = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !nginx {
|
|
||||||
t.Errorf("nginx entry was not decoded properly")
|
|
||||||
}
|
|
||||||
if !alpine {
|
|
||||||
t.Errorf("alpine entry was not decoded properly")
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,114 @@
|
|||||||
|
package repo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
const testfile = "testdata/local-index.yaml"
|
||||||
|
const testRepositoriesFile = "testdata/repositories.yaml"
|
||||||
|
const testRepository = "testdata/repository"
|
||||||
|
|
||||||
|
func TestLoadIndexFile(t *testing.T) {
|
||||||
|
cf, err := LoadIndexFile(testfile)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to load index file: %s", err)
|
||||||
|
}
|
||||||
|
if len(cf.Entries) != 2 {
|
||||||
|
t.Errorf("Expected 2 entries in the index file, but got %d", len(cf.Entries))
|
||||||
|
}
|
||||||
|
nginx := false
|
||||||
|
alpine := false
|
||||||
|
for k, e := range cf.Entries {
|
||||||
|
if k == "nginx-0.1.0" {
|
||||||
|
if e.Name == "nginx" {
|
||||||
|
if len(e.Chartfile.Keywords) == 3 {
|
||||||
|
nginx = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if k == "alpine-1.0.0" {
|
||||||
|
if e.Name == "alpine" {
|
||||||
|
if len(e.Chartfile.Keywords) == 4 {
|
||||||
|
alpine = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !nginx {
|
||||||
|
t.Errorf("nginx entry was not decoded properly")
|
||||||
|
}
|
||||||
|
if !alpine {
|
||||||
|
t.Errorf("alpine entry was not decoded properly")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLoadRepositoriesFile(t *testing.T) {
|
||||||
|
rf, err := LoadRepositoriesFile(testRepositoriesFile)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf(testRepositoriesFile + " could not be loaded: " + err.Error())
|
||||||
|
}
|
||||||
|
expected := map[string]string{"best-charts-ever": "http://best-charts-ever.com",
|
||||||
|
"okay-charts": "http://okay-charts.org", "example123": "http://examplecharts.net/charts/123"}
|
||||||
|
|
||||||
|
numOfRepositories := len(rf.Repositories)
|
||||||
|
expectedNumOfRepositories := 3
|
||||||
|
if numOfRepositories != expectedNumOfRepositories {
|
||||||
|
t.Errorf("Expected %v repositories but only got %v", expectedNumOfRepositories, numOfRepositories)
|
||||||
|
}
|
||||||
|
|
||||||
|
for expectedRepo, expectedURL := range expected {
|
||||||
|
actual, ok := rf.Repositories[expectedRepo]
|
||||||
|
if !ok {
|
||||||
|
t.Errorf("Expected repository: %v but was not found", expectedRepo)
|
||||||
|
}
|
||||||
|
|
||||||
|
if expectedURL != actual {
|
||||||
|
t.Errorf("Expected url %s for the %s repository but got %s ", expectedURL, expectedRepo, actual)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLoadChartRepository(t *testing.T) {
|
||||||
|
cr, err := LoadChartRepository(testRepository)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Problem loading chart repository from %s: %v", testRepository, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
paths := []string{filepath.Join(testRepository, "frobnitz-1.2.3.tgz"), filepath.Join(testRepository, "sprocket-1.2.0.tgz")}
|
||||||
|
|
||||||
|
if cr.RootPath != testRepository {
|
||||||
|
t.Errorf("Expected %s as RootPath but got %s", testRepository, cr.RootPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(cr.ChartPaths, paths) {
|
||||||
|
t.Errorf("Expected %#v but got %#v\n", paths, cr.ChartPaths)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIndex(t *testing.T) {
|
||||||
|
cr, err := LoadChartRepository(testRepository)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Problem loading chart repository from %s: %v", testRepository, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = cr.Index()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Error performing index: %v\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
tempIndexPath := filepath.Join(testRepository, indexPath)
|
||||||
|
actual, err := LoadIndexFile(tempIndexPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Error loading index file %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
numEntries := len(actual.Entries)
|
||||||
|
if numEntries != 2 {
|
||||||
|
t.Errorf("Expected 2 charts to be listed in index file but got %v", numEntries)
|
||||||
|
}
|
||||||
|
|
||||||
|
os.Remove(tempIndexPath) // clean up
|
||||||
|
}
|
@ -1,22 +1,26 @@
|
|||||||
nginx-0.1.0:
|
nginx-0.1.0:
|
||||||
url: http://storage.googleapis.com/kubernetes-charts/nginx-0.1.0.tgz
|
url: http://storage.googleapis.com/kubernetes-charts/nginx-0.1.0.tgz
|
||||||
name: nginx
|
name: nginx
|
||||||
description: string
|
chartfile:
|
||||||
version: 0.1.0
|
name: nginx
|
||||||
home: https://github.com/something
|
description: string
|
||||||
keywords:
|
version: 0.1.0
|
||||||
- popular
|
home: https://github.com/something
|
||||||
- web server
|
keywords:
|
||||||
- proxy
|
- popular
|
||||||
|
- web server
|
||||||
|
- proxy
|
||||||
alpine-1.0.0:
|
alpine-1.0.0:
|
||||||
url: http://storage.googleapis.com/kubernetes-charts/alpine-1.0.0.tgz
|
url: http://storage.googleapis.com/kubernetes-charts/alpine-1.0.0.tgz
|
||||||
name: alpine
|
name: alpine
|
||||||
description: string
|
chartfile:
|
||||||
version: 1.0.0
|
name: alpine
|
||||||
home: https://github.com/something
|
description: string
|
||||||
keywords:
|
version: 1.0.0
|
||||||
- linux
|
home: https://github.com/something
|
||||||
- alpine
|
keywords:
|
||||||
- small
|
- linux
|
||||||
- sumtin
|
- alpine
|
||||||
|
- small
|
||||||
|
- sumtin
|
||||||
|
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
best-charts-ever: http://best-charts-ever.com
|
||||||
|
okay-charts: http://okay-charts.org
|
||||||
|
example123: http://examplecharts.net/charts/123
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue