pull/39/head
Karolis Rusenas 2017-07-18 22:44:04 +01:00
parent c150fa9430
commit 8e8f8cd899
1 changed files with 94 additions and 8 deletions

View File

@ -3,9 +3,25 @@ package helm
import (
"fmt"
"github.com/ghodss/yaml"
"github.com/rusenask/keel/types"
"k8s.io/helm/pkg/chartutil"
"testing"
)
// helper function to generate keel configuration
func testingConfigYaml(cfg *KeelChartConfig) (vals chartutil.Values, err error) {
root := &Root{Keel: *cfg}
bts, err := yaml.Marshal(root)
if err != nil {
return nil, err
}
return chartutil.ReadValues(bts)
}
func TestParseImage(t *testing.T) {
imp := NewHelmImplementer("192.168.99.100:30083")
@ -26,7 +42,7 @@ func TestParseImage(t *testing.T) {
}
}
func TestUpdateRelease(t *testing.T) {
func TestGetChartPolicy(t *testing.T) {
imp := NewHelmImplementer("192.168.99.100:30083")
releases, err := imp.ListReleases()
@ -34,19 +50,89 @@ func TestUpdateRelease(t *testing.T) {
t.Fatalf("unexpected error: %s", err)
}
policyFound := false
for _, release := range releases.Releases {
ref, err := parseImage(release.Chart, release.Config)
vals, err := values(release.Chart, release.Config)
if err != nil {
t.Errorf("failed to parse image, error: %s", err)
t.Fatalf("failed to get values: %s", err)
}
fmt.Println(ref.Remote())
err = updateHelmRelease(imp, release.Name, release.Chart, "image.tag=0.0.11")
// policy, err := getChartPolicy(vals)
// if err != nil {
// t.Errorf("failed to parse image, error: %s", err)
// }
cfg, err := getKeelConfig(vals)
if err != nil {
t.Errorf("failed to update release, error: %s", err)
t.Errorf("failed to get image paths: %s", err)
}
fmt.Println(cfg)
if cfg.Policy == types.PolicyTypeAll {
policyFound = true
}
}
if !policyFound {
t.Errorf("policy not found")
}
}
func TestGetTriggerFromConfig(t *testing.T) {
vals, err := testingConfigYaml(&KeelChartConfig{Trigger: "poll"})
if err != nil {
t.Fatalf("Failed to load testdata: %s", err)
}
cfg, err := getKeelConfig(vals)
if err != nil {
t.Errorf("failed to get image paths: %s", err)
}
if cfg.Trigger != "poll" {
t.Errorf("invalid trigger: %s", cfg.Trigger)
}
}
func TestGetPolicyFromConfig(t *testing.T) {
vals, err := testingConfigYaml(&KeelChartConfig{Policy: types.PolicyTypeAll})
if err != nil {
t.Fatalf("Failed to load testdata: %s", err)
}
cfg, err := getKeelConfig(vals)
if err != nil {
t.Errorf("failed to get image paths: %s", err)
}
if cfg.Policy != types.PolicyTypeAll {
t.Errorf("invalid policy: %s", cfg.Policy)
}
}
// func TestUpdateRelease(t *testing.T) {
// imp := NewHelmImplementer("192.168.99.100:30083")
// releases, err := imp.ListReleases()
// if err != nil {
// t.Fatalf("unexpected error: %s", err)
// }
// for _, release := range releases.Releases {
// ref, err := parseImage(release.Chart, release.Config)
// if err != nil {
// t.Errorf("failed to parse image, error: %s", err)
// }
// fmt.Println(ref.Remote())
// err = updateHelmRelease(imp, release.Name, release.Chart, "image.tag=0.0.11")
// if err != nil {
// t.Errorf("failed to update release, error: %s", err)
// }
// }
// }