Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
helm3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
helm3
Commits
14510866
Commit
14510866
authored
Oct 11, 2017
by
Brad Bowman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update cmd tests to use ReleaseMock and assocaites from the helm package
parent
e974ab31
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
78 additions
and
139 deletions
+78
-139
delete_test.go
cmd/helm/delete_test.go
+9
-4
get_hooks_test.go
cmd/helm/get_hooks_test.go
+4
-2
get_manifest_test.go
cmd/helm/get_manifest_test.go
+4
-2
get_test.go
cmd/helm/get_test.go
+4
-2
get_values_test.go
cmd/helm/get_values_test.go
+3
-1
helm_test.go
cmd/helm/helm_test.go
+5
-87
history_test.go
cmd/helm/history_test.go
+4
-4
list_test.go
cmd/helm/list_test.go
+18
-18
reset_test.go
cmd/helm/reset_test.go
+2
-2
status_test.go
cmd/helm/status_test.go
+5
-5
upgrade_test.go
cmd/helm/upgrade_test.go
+20
-12
No files found.
cmd/helm/delete_test.go
View file @
14510866
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/release"
)
)
func
TestDelete
(
t
*
testing
.
T
)
{
func
TestDelete
(
t
*
testing
.
T
)
{
...
@@ -33,28 +34,32 @@ func TestDelete(t *testing.T) {
...
@@ -33,28 +34,32 @@ func TestDelete(t *testing.T) {
args
:
[]
string
{
"aeneas"
},
args
:
[]
string
{
"aeneas"
},
flags
:
[]
string
{},
flags
:
[]
string
{},
expected
:
""
,
// Output of a delete is an empty string and exit 0.
expected
:
""
,
// Output of a delete is an empty string and exit 0.
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"aeneas"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
}),
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
})},
},
},
{
{
name
:
"delete with timeout"
,
name
:
"delete with timeout"
,
args
:
[]
string
{
"aeneas"
},
args
:
[]
string
{
"aeneas"
},
flags
:
[]
string
{
"--timeout"
,
"120"
},
flags
:
[]
string
{
"--timeout"
,
"120"
},
expected
:
""
,
expected
:
""
,
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"aeneas"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
}),
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
})},
},
},
{
{
name
:
"delete without hooks"
,
name
:
"delete without hooks"
,
args
:
[]
string
{
"aeneas"
},
args
:
[]
string
{
"aeneas"
},
flags
:
[]
string
{
"--no-hooks"
},
flags
:
[]
string
{
"--no-hooks"
},
expected
:
""
,
expected
:
""
,
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"aeneas"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
}),
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
})},
},
},
{
{
name
:
"purge"
,
name
:
"purge"
,
args
:
[]
string
{
"aeneas"
},
args
:
[]
string
{
"aeneas"
},
flags
:
[]
string
{
"--purge"
},
flags
:
[]
string
{
"--purge"
},
expected
:
""
,
expected
:
""
,
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"aeneas"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
}),
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
})},
},
},
{
{
name
:
"delete without release"
,
name
:
"delete without release"
,
...
...
cmd/helm/get_hooks_test.go
View file @
14510866
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/release"
)
)
func
TestGetHooks
(
t
*
testing
.
T
)
{
func
TestGetHooks
(
t
*
testing
.
T
)
{
...
@@ -30,8 +31,9 @@ func TestGetHooks(t *testing.T) {
...
@@ -30,8 +31,9 @@ func TestGetHooks(t *testing.T) {
{
{
name
:
"get hooks with release"
,
name
:
"get hooks with release"
,
args
:
[]
string
{
"aeneas"
},
args
:
[]
string
{
"aeneas"
},
expected
:
mockHookTemplate
,
expected
:
helm
.
MockHookTemplate
,
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"aeneas"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
}),
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"aeneas"
})},
},
},
{
{
name
:
"get hooks without args"
,
name
:
"get hooks without args"
,
...
...
cmd/helm/get_manifest_test.go
View file @
14510866
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/release"
)
)
func
TestGetManifest
(
t
*
testing
.
T
)
{
func
TestGetManifest
(
t
*
testing
.
T
)
{
...
@@ -30,8 +31,9 @@ func TestGetManifest(t *testing.T) {
...
@@ -30,8 +31,9 @@ func TestGetManifest(t *testing.T) {
{
{
name
:
"get manifest with release"
,
name
:
"get manifest with release"
,
args
:
[]
string
{
"juno"
},
args
:
[]
string
{
"juno"
},
expected
:
mockManifest
,
expected
:
helm
.
MockManifest
,
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"juno"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"juno"
}),
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"juno"
})},
},
},
{
{
name
:
"get manifest without args"
,
name
:
"get manifest without args"
,
...
...
cmd/helm/get_test.go
View file @
14510866
...
@@ -23,15 +23,17 @@ import (
...
@@ -23,15 +23,17 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/release"
)
)
func
TestGetCmd
(
t
*
testing
.
T
)
{
func
TestGetCmd
(
t
*
testing
.
T
)
{
tests
:=
[]
releaseCase
{
tests
:=
[]
releaseCase
{
{
{
name
:
"get with a release"
,
name
:
"get with a release"
,
resp
:
releaseMock
(
&
releaseOptions
{
n
ame
:
"thomas-guide"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
N
ame
:
"thomas-guide"
}),
args
:
[]
string
{
"thomas-guide"
},
args
:
[]
string
{
"thomas-guide"
},
expected
:
"REVISION: 1
\n
RELEASED: (.*)
\n
CHART: foo-0.1.0-beta.1
\n
USER-SUPPLIED VALUES:
\n
name:
\"
value
\"\n
COMPUTED VALUES:
\n
name: value
\n\n
HOOKS:
\n
---
\n
# pre-install-hook
\n
"
+
mockHookTemplate
+
"
\n
MANIFEST:"
,
expected
:
"REVISION: 1
\n
RELEASED: (.*)
\n
CHART: foo-0.1.0-beta.1
\n
USER-SUPPLIED VALUES:
\n
name:
\"
value
\"\n
COMPUTED VALUES:
\n
name: value
\n\n
HOOKS:
\n
---
\n
# pre-install-hook
\n
"
+
helm
.
MockHookTemplate
+
"
\n
MANIFEST:"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
})},
},
},
{
{
name
:
"get requires release name arg"
,
name
:
"get requires release name arg"
,
...
...
cmd/helm/get_values_test.go
View file @
14510866
...
@@ -23,15 +23,17 @@ import (
...
@@ -23,15 +23,17 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/release"
)
)
func
TestGetValuesCmd
(
t
*
testing
.
T
)
{
func
TestGetValuesCmd
(
t
*
testing
.
T
)
{
tests
:=
[]
releaseCase
{
tests
:=
[]
releaseCase
{
{
{
name
:
"get values with a release"
,
name
:
"get values with a release"
,
resp
:
releaseMock
(
&
releaseOptions
{
n
ame
:
"thomas-guide"
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
N
ame
:
"thomas-guide"
}),
args
:
[]
string
{
"thomas-guide"
},
args
:
[]
string
{
"thomas-guide"
},
expected
:
"name:
\"
value
\"
"
,
expected
:
"name:
\"
value
\"
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
})},
},
},
{
{
name
:
"get values requires release name arg"
,
name
:
"get values requires release name arg"
,
...
...
cmd/helm/helm_test.go
View file @
14510866
...
@@ -21,115 +21,30 @@ import (
...
@@ -21,115 +21,30 @@ import (
"fmt"
"fmt"
"io"
"io"
"io/ioutil"
"io/ioutil"
"math/rand"
"os"
"os"
"path/filepath"
"path/filepath"
"regexp"
"regexp"
"strings"
"strings"
"testing"
"testing"
"github.com/golang/protobuf/ptypes/timestamp"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm/helmpath"
"k8s.io/helm/pkg/helm/helmpath"
"k8s.io/helm/pkg/proto/hapi/chart"
"k8s.io/helm/pkg/proto/hapi/release"
"k8s.io/helm/pkg/proto/hapi/release"
"k8s.io/helm/pkg/repo"
"k8s.io/helm/pkg/repo"
)
)
var
mockHookTemplate
=
`apiVersion: v1
kind: Job
metadata:
annotations:
"helm.sh/hooks": pre-install
`
var
mockManifest
=
`apiVersion: v1
kind: Secret
metadata:
name: fixture
`
type
releaseOptions
struct
{
name
string
version
int32
chart
*
chart
.
Chart
statusCode
release
.
Status_Code
namespace
string
}
func
releaseMock
(
opts
*
releaseOptions
)
*
release
.
Release
{
date
:=
timestamp
.
Timestamp
{
Seconds
:
242085845
,
Nanos
:
0
}
name
:=
opts
.
name
if
name
==
""
{
name
=
"testrelease-"
+
string
(
rand
.
Intn
(
100
))
}
var
version
int32
=
1
if
opts
.
version
!=
0
{
version
=
opts
.
version
}
namespace
:=
opts
.
namespace
if
namespace
==
""
{
namespace
=
"default"
}
ch
:=
opts
.
chart
if
opts
.
chart
==
nil
{
ch
=
&
chart
.
Chart
{
Metadata
:
&
chart
.
Metadata
{
Name
:
"foo"
,
Version
:
"0.1.0-beta.1"
,
},
Templates
:
[]
*
chart
.
Template
{
{
Name
:
"templates/foo.tpl"
,
Data
:
[]
byte
(
mockManifest
)},
},
}
}
scode
:=
release
.
Status_DEPLOYED
if
opts
.
statusCode
>
0
{
scode
=
opts
.
statusCode
}
return
&
release
.
Release
{
Name
:
name
,
Info
:
&
release
.
Info
{
FirstDeployed
:
&
date
,
LastDeployed
:
&
date
,
Status
:
&
release
.
Status
{
Code
:
scode
},
Description
:
"Release mock"
,
},
Chart
:
ch
,
Config
:
&
chart
.
Config
{
Raw
:
`name: "value"`
},
Version
:
version
,
Namespace
:
namespace
,
Hooks
:
[]
*
release
.
Hook
{
{
Name
:
"pre-install-hook"
,
Kind
:
"Job"
,
Path
:
"pre-install-hook.yaml"
,
Manifest
:
mockHookTemplate
,
LastRun
:
&
date
,
Events
:
[]
release
.
Hook_Event
{
release
.
Hook_PRE_INSTALL
},
},
},
Manifest
:
mockManifest
,
}
}
// releaseCmd is a command that works with a FakeClient
// releaseCmd is a command that works with a FakeClient
type
releaseCmd
func
(
c
*
helm
.
FakeClient
,
out
io
.
Writer
)
*
cobra
.
Command
type
releaseCmd
func
(
c
*
helm
.
FakeClient
,
out
io
.
Writer
)
*
cobra
.
Command
// runReleaseCases runs a set of release cases through the given releaseCmd.
// runReleaseCases runs a set of release cases through the given releaseCmd.
func
runReleaseCases
(
t
*
testing
.
T
,
tests
[]
releaseCase
,
rcmd
releaseCmd
)
{
func
runReleaseCases
(
t
*
testing
.
T
,
tests
[]
releaseCase
,
rcmd
releaseCmd
)
{
var
buf
bytes
.
Buffer
var
buf
bytes
.
Buffer
for
_
,
tt
:=
range
tests
{
for
_
,
tt
:=
range
tests
{
c
:=
&
helm
.
FakeClient
{
c
:=
&
helm
.
FakeClient
{
Rels
:
[]
*
release
.
Release
{
tt
.
resp
}
,
Rels
:
tt
.
rels
,
}
}
cmd
:=
rcmd
(
c
,
&
buf
)
cmd
:=
rcmd
(
c
,
&
buf
)
cmd
.
ParseFlags
(
tt
.
flags
)
cmd
.
ParseFlags
(
tt
.
flags
)
...
@@ -154,6 +69,8 @@ type releaseCase struct {
...
@@ -154,6 +69,8 @@ type releaseCase struct {
expected
string
expected
string
err
bool
err
bool
resp
*
release
.
Release
resp
*
release
.
Release
// Rels are the available releases at the start of the test.
rels
[]
*
release
.
Release
}
}
// tempHelmHome sets up a Helm Home in a temp dir.
// tempHelmHome sets up a Helm Home in a temp dir.
...
@@ -230,6 +147,7 @@ func ensureTestHome(home helmpath.Home, t *testing.T) error {
...
@@ -230,6 +147,7 @@ func ensureTestHome(home helmpath.Home, t *testing.T) error {
t
.
Logf
(
"$HELM_HOME has been configured at %s.
\n
"
,
settings
.
Home
.
String
())
t
.
Logf
(
"$HELM_HOME has been configured at %s.
\n
"
,
settings
.
Home
.
String
())
return
nil
return
nil
}
}
func
TestRootCmd
(
t
*
testing
.
T
)
{
func
TestRootCmd
(
t
*
testing
.
T
)
{
...
...
cmd/helm/history_test.go
View file @
14510866
...
@@ -27,10 +27,10 @@ import (
...
@@ -27,10 +27,10 @@ import (
func
TestHistoryCmd
(
t
*
testing
.
T
)
{
func
TestHistoryCmd
(
t
*
testing
.
T
)
{
mk
:=
func
(
name
string
,
vers
int32
,
code
rpb
.
Status_Code
)
*
rpb
.
Release
{
mk
:=
func
(
name
string
,
vers
int32
,
code
rpb
.
Status_Code
)
*
rpb
.
Release
{
return
releaseMock
(
&
r
eleaseOptions
{
return
helm
.
ReleaseMock
(
&
helm
.
MockR
eleaseOptions
{
n
ame
:
name
,
N
ame
:
name
,
v
ersion
:
vers
,
V
ersion
:
vers
,
s
tatusCode
:
code
,
S
tatusCode
:
code
,
})
})
}
}
...
...
cmd/helm/list_test.go
View file @
14510866
...
@@ -36,7 +36,7 @@ func TestListCmd(t *testing.T) {
...
@@ -36,7 +36,7 @@ func TestListCmd(t *testing.T) {
{
{
name
:
"with a release"
,
name
:
"with a release"
,
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
n
ame
:
"thomas-guide"
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
N
ame
:
"thomas-guide"
}),
},
},
expected
:
"thomas-guide"
,
expected
:
"thomas-guide"
,
},
},
...
@@ -44,7 +44,7 @@ func TestListCmd(t *testing.T) {
...
@@ -44,7 +44,7 @@ func TestListCmd(t *testing.T) {
name
:
"list"
,
name
:
"list"
,
args
:
[]
string
{},
args
:
[]
string
{},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
n
ame
:
"atlas"
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
N
ame
:
"atlas"
}),
},
},
expected
:
"NAME
\t
REVISION
\t
UPDATED
\t
STATUS
\t
CHART
\t
NAMESPACE
\n
atlas
\t
1
\t
(.*)
\t
DEPLOYED
\t
foo-0.1.0-beta.1
\t
default
\n
"
,
expected
:
"NAME
\t
REVISION
\t
UPDATED
\t
STATUS
\t
CHART
\t
NAMESPACE
\n
atlas
\t
1
\t
(.*)
\t
DEPLOYED
\t
foo-0.1.0-beta.1
\t
default
\n
"
,
},
},
...
@@ -52,8 +52,8 @@ func TestListCmd(t *testing.T) {
...
@@ -52,8 +52,8 @@ func TestListCmd(t *testing.T) {
name
:
"list, one deployed, one failed"
,
name
:
"list, one deployed, one failed"
,
args
:
[]
string
{
"-q"
},
args
:
[]
string
{
"-q"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
s
tatusCode
:
release
.
Status_FAILED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
S
tatusCode
:
release
.
Status_FAILED
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
},
},
expected
:
"thomas-guide
\n
atlas-guide"
,
expected
:
"thomas-guide
\n
atlas-guide"
,
},
},
...
@@ -61,8 +61,8 @@ func TestListCmd(t *testing.T) {
...
@@ -61,8 +61,8 @@ func TestListCmd(t *testing.T) {
name
:
"with a release, multiple flags"
,
name
:
"with a release, multiple flags"
,
args
:
[]
string
{
"--deleted"
,
"--deployed"
,
"--failed"
,
"-q"
},
args
:
[]
string
{
"--deleted"
,
"--deployed"
,
"--failed"
,
"-q"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
s
tatusCode
:
release
.
Status_DELETED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
S
tatusCode
:
release
.
Status_DELETED
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
},
},
// Note: We're really only testing that the flags parsed correctly. Which results are returned
// Note: We're really only testing that the flags parsed correctly. Which results are returned
// depends on the backend. And until pkg/helm is done, we can't mock this.
// depends on the backend. And until pkg/helm is done, we can't mock this.
...
@@ -72,8 +72,8 @@ func TestListCmd(t *testing.T) {
...
@@ -72,8 +72,8 @@ func TestListCmd(t *testing.T) {
name
:
"with a release, multiple flags"
,
name
:
"with a release, multiple flags"
,
args
:
[]
string
{
"--all"
,
"-q"
},
args
:
[]
string
{
"--all"
,
"-q"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
s
tatusCode
:
release
.
Status_DELETED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
S
tatusCode
:
release
.
Status_DELETED
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
},
},
// See note on previous test.
// See note on previous test.
expected
:
"thomas-guide
\n
atlas-guide"
,
expected
:
"thomas-guide
\n
atlas-guide"
,
...
@@ -82,8 +82,8 @@ func TestListCmd(t *testing.T) {
...
@@ -82,8 +82,8 @@ func TestListCmd(t *testing.T) {
name
:
"with a release, multiple flags, deleting"
,
name
:
"with a release, multiple flags, deleting"
,
args
:
[]
string
{
"--all"
,
"-q"
},
args
:
[]
string
{
"--all"
,
"-q"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
s
tatusCode
:
release
.
Status_DELETING
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
S
tatusCode
:
release
.
Status_DELETING
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
},
},
// See note on previous test.
// See note on previous test.
expected
:
"thomas-guide
\n
atlas-guide"
,
expected
:
"thomas-guide
\n
atlas-guide"
,
...
@@ -92,8 +92,8 @@ func TestListCmd(t *testing.T) {
...
@@ -92,8 +92,8 @@ func TestListCmd(t *testing.T) {
name
:
"namespace defined, multiple flags"
,
name
:
"namespace defined, multiple flags"
,
args
:
[]
string
{
"--all"
,
"-q"
,
"--namespace test123"
},
args
:
[]
string
{
"--all"
,
"-q"
,
"--namespace test123"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
n
amespace
:
"test123"
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
N
amespace
:
"test123"
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
n
amespace
:
"test321"
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
N
amespace
:
"test321"
}),
},
},
// See note on previous test.
// See note on previous test.
expected
:
"thomas-guide"
,
expected
:
"thomas-guide"
,
...
@@ -102,8 +102,8 @@ func TestListCmd(t *testing.T) {
...
@@ -102,8 +102,8 @@ func TestListCmd(t *testing.T) {
name
:
"with a pending release, multiple flags"
,
name
:
"with a pending release, multiple flags"
,
args
:
[]
string
{
"--all"
,
"-q"
},
args
:
[]
string
{
"--all"
,
"-q"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
s
tatusCode
:
release
.
Status_PENDING_INSTALL
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
S
tatusCode
:
release
.
Status_PENDING_INSTALL
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
},
},
expected
:
"thomas-guide
\n
atlas-guide"
,
expected
:
"thomas-guide
\n
atlas-guide"
,
},
},
...
@@ -111,10 +111,10 @@ func TestListCmd(t *testing.T) {
...
@@ -111,10 +111,10 @@ func TestListCmd(t *testing.T) {
name
:
"with a pending release, pending flag"
,
name
:
"with a pending release, pending flag"
,
args
:
[]
string
{
"--pending"
,
"-q"
},
args
:
[]
string
{
"--pending"
,
"-q"
},
resp
:
[]
*
release
.
Release
{
resp
:
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"thomas-guide"
,
s
tatusCode
:
release
.
Status_PENDING_INSTALL
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"thomas-guide"
,
S
tatusCode
:
release
.
Status_PENDING_INSTALL
}),
releaseMock
(
&
releaseOptions
{
name
:
"wild-idea"
,
s
tatusCode
:
release
.
Status_PENDING_UPGRADE
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"wild-idea"
,
S
tatusCode
:
release
.
Status_PENDING_UPGRADE
}),
releaseMock
(
&
releaseOptions
{
name
:
"crazy-maps"
,
s
tatusCode
:
release
.
Status_PENDING_ROLLBACK
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"crazy-maps"
,
S
tatusCode
:
release
.
Status_PENDING_ROLLBACK
}),
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
},
},
expected
:
"thomas-guide
\n
wild-idea
\n
crazy-maps"
,
expected
:
"thomas-guide
\n
wild-idea
\n
crazy-maps"
,
},
},
...
...
cmd/helm/reset_test.go
View file @
14510866
...
@@ -107,7 +107,7 @@ func TestReset_deployedReleases(t *testing.T) {
...
@@ -107,7 +107,7 @@ func TestReset_deployedReleases(t *testing.T) {
var
buf
bytes
.
Buffer
var
buf
bytes
.
Buffer
resp
:=
[]
*
release
.
Release
{
resp
:=
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
}
}
c
:=
&
helm
.
FakeClient
{
c
:=
&
helm
.
FakeClient
{
Rels
:
resp
,
Rels
:
resp
,
...
@@ -139,7 +139,7 @@ func TestReset_forceFlag(t *testing.T) {
...
@@ -139,7 +139,7 @@ func TestReset_forceFlag(t *testing.T) {
var
buf
bytes
.
Buffer
var
buf
bytes
.
Buffer
resp
:=
[]
*
release
.
Release
{
resp
:=
[]
*
release
.
Release
{
releaseMock
(
&
releaseOptions
{
name
:
"atlas-guide"
,
s
tatusCode
:
release
.
Status_DEPLOYED
}),
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"atlas-guide"
,
S
tatusCode
:
release
.
Status_DEPLOYED
}),
}
}
c
:=
&
helm
.
FakeClient
{
c
:=
&
helm
.
FakeClient
{
Rels
:
resp
,
Rels
:
resp
,
...
...
cmd/helm/status_test.go
View file @
14510866
...
@@ -52,7 +52,7 @@ func TestStatusCmd(t *testing.T) {
...
@@ -52,7 +52,7 @@ func TestStatusCmd(t *testing.T) {
name
:
"get status of a deployed release"
,
name
:
"get status of a deployed release"
,
args
:
[]
string
{
"flummoxed-chickadee"
},
args
:
[]
string
{
"flummoxed-chickadee"
},
expected
:
outputWithStatus
(
"DEPLOYED
\n\n
"
),
expected
:
outputWithStatus
(
"DEPLOYED
\n\n
"
),
rel
:
r
eleaseMockWithStatus
(
&
release
.
Status
{
rel
:
R
eleaseMockWithStatus
(
&
release
.
Status
{
Code
:
release
.
Status_DEPLOYED
,
Code
:
release
.
Status_DEPLOYED
,
}),
}),
},
},
...
@@ -60,7 +60,7 @@ func TestStatusCmd(t *testing.T) {
...
@@ -60,7 +60,7 @@ func TestStatusCmd(t *testing.T) {
name
:
"get status of a deployed release with notes"
,
name
:
"get status of a deployed release with notes"
,
args
:
[]
string
{
"flummoxed-chickadee"
},
args
:
[]
string
{
"flummoxed-chickadee"
},
expected
:
outputWithStatus
(
"DEPLOYED
\n\n
NOTES:
\n
release notes
\n
"
),
expected
:
outputWithStatus
(
"DEPLOYED
\n\n
NOTES:
\n
release notes
\n
"
),
rel
:
r
eleaseMockWithStatus
(
&
release
.
Status
{
rel
:
R
eleaseMockWithStatus
(
&
release
.
Status
{
Code
:
release
.
Status_DEPLOYED
,
Code
:
release
.
Status_DEPLOYED
,
Notes
:
"release notes"
,
Notes
:
"release notes"
,
}),
}),
...
@@ -69,7 +69,7 @@ func TestStatusCmd(t *testing.T) {
...
@@ -69,7 +69,7 @@ func TestStatusCmd(t *testing.T) {
name
:
"get status of a deployed release with resources"
,
name
:
"get status of a deployed release with resources"
,
args
:
[]
string
{
"flummoxed-chickadee"
},
args
:
[]
string
{
"flummoxed-chickadee"
},
expected
:
outputWithStatus
(
"DEPLOYED
\n\n
RESOURCES:
\n
resource A
\n
resource B
\n\n
"
),
expected
:
outputWithStatus
(
"DEPLOYED
\n\n
RESOURCES:
\n
resource A
\n
resource B
\n\n
"
),
rel
:
r
eleaseMockWithStatus
(
&
release
.
Status
{
rel
:
R
eleaseMockWithStatus
(
&
release
.
Status
{
Code
:
release
.
Status_DEPLOYED
,
Code
:
release
.
Status_DEPLOYED
,
Resources
:
"resource A
\n
resource B
\n
"
,
Resources
:
"resource A
\n
resource B
\n
"
,
}),
}),
...
@@ -82,7 +82,7 @@ func TestStatusCmd(t *testing.T) {
...
@@ -82,7 +82,7 @@ func TestStatusCmd(t *testing.T) {
"TEST
\t
STATUS
\t
INFO
\t
STARTED
\t
COMPLETED
\n
"
+
"TEST
\t
STATUS
\t
INFO
\t
STARTED
\t
COMPLETED
\n
"
+
fmt
.
Sprintf
(
"test run 1
\t
SUCCESS
\t
extra info
\t
%s
\t
%s
\n
"
,
dateString
,
dateString
)
+
fmt
.
Sprintf
(
"test run 1
\t
SUCCESS
\t
extra info
\t
%s
\t
%s
\n
"
,
dateString
,
dateString
)
+
fmt
.
Sprintf
(
"test run 2
\t
FAILURE
\t
\t
%s
\t
%s
\n
"
,
dateString
,
dateString
)),
fmt
.
Sprintf
(
"test run 2
\t
FAILURE
\t
\t
%s
\t
%s
\n
"
,
dateString
,
dateString
)),
rel
:
r
eleaseMockWithStatus
(
&
release
.
Status
{
rel
:
R
eleaseMockWithStatus
(
&
release
.
Status
{
Code
:
release
.
Status_DEPLOYED
,
Code
:
release
.
Status_DEPLOYED
,
LastTestSuiteRun
:
&
release
.
TestSuite
{
LastTestSuiteRun
:
&
release
.
TestSuite
{
StartedAt
:
&
date
,
StartedAt
:
&
date
,
...
@@ -138,7 +138,7 @@ func outputWithStatus(status string) string {
...
@@ -138,7 +138,7 @@ func outputWithStatus(status string) string {
status
)
status
)
}
}
func
r
eleaseMockWithStatus
(
status
*
release
.
Status
)
*
release
.
Release
{
func
R
eleaseMockWithStatus
(
status
*
release
.
Status
)
*
release
.
Release
{
return
&
release
.
Release
{
return
&
release
.
Release
{
Name
:
"flummoxed-chickadee"
,
Name
:
"flummoxed-chickadee"
,
Info
:
&
release
.
Info
{
Info
:
&
release
.
Info
{
...
...
cmd/helm/upgrade_test.go
View file @
14510866
...
@@ -28,6 +28,7 @@ import (
...
@@ -28,6 +28,7 @@ import (
"k8s.io/helm/pkg/chartutil"
"k8s.io/helm/pkg/chartutil"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/helm"
"k8s.io/helm/pkg/proto/hapi/chart"
"k8s.io/helm/pkg/proto/hapi/chart"
"k8s.io/helm/pkg/proto/hapi/release"
)
)
func
TestUpgradeCmd
(
t
*
testing
.
T
)
{
func
TestUpgradeCmd
(
t
*
testing
.
T
)
{
...
@@ -43,9 +44,9 @@ func TestUpgradeCmd(t *testing.T) {
...
@@ -43,9 +44,9 @@ func TestUpgradeCmd(t *testing.T) {
t
.
Errorf
(
"Error creating chart for upgrade: %v"
,
err
)
t
.
Errorf
(
"Error creating chart for upgrade: %v"
,
err
)
}
}
ch
,
_
:=
chartutil
.
Load
(
chartPath
)
ch
,
_
:=
chartutil
.
Load
(
chartPath
)
_
=
releaseMock
(
&
r
eleaseOptions
{
_
=
helm
.
ReleaseMock
(
&
helm
.
MockR
eleaseOptions
{
n
ame
:
"funny-bunny"
,
N
ame
:
"funny-bunny"
,
c
hart
:
ch
,
C
hart
:
ch
,
})
})
// update chart version
// update chart version
...
@@ -94,61 +95,68 @@ func TestUpgradeCmd(t *testing.T) {
...
@@ -94,61 +95,68 @@ func TestUpgradeCmd(t *testing.T) {
{
{
name
:
"upgrade a release"
,
name
:
"upgrade a release"
,
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"funny-bunny"
,
version
:
2
,
c
hart
:
ch
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
2
,
C
hart
:
ch
}),
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
2
,
Chart
:
ch
})},
},
},
{
{
name
:
"upgrade a release with timeout"
,
name
:
"upgrade a release with timeout"
,
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
flags
:
[]
string
{
"--timeout"
,
"120"
},
flags
:
[]
string
{
"--timeout"
,
"120"
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"funny-bunny"
,
version
:
3
,
c
hart
:
ch2
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
3
,
C
hart
:
ch2
}),
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
3
,
Chart
:
ch2
})},
},
},
{
{
name
:
"upgrade a release with --reset-values"
,
name
:
"upgrade a release with --reset-values"
,
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
flags
:
[]
string
{
"--reset-values"
,
"true"
},
flags
:
[]
string
{
"--reset-values"
,
"true"
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"funny-bunny"
,
version
:
4
,
c
hart
:
ch2
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
4
,
C
hart
:
ch2
}),
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
4
,
Chart
:
ch2
})},
},
},
{
{
name
:
"upgrade a release with --reuse-values"
,
name
:
"upgrade a release with --reuse-values"
,
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
args
:
[]
string
{
"funny-bunny"
,
chartPath
},
flags
:
[]
string
{
"--reuse-values"
,
"true"
},
flags
:
[]
string
{
"--reuse-values"
,
"true"
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"funny-bunny"
,
version
:
5
,
c
hart
:
ch2
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
5
,
C
hart
:
ch2
}),
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
funny-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"funny-bunny"
,
Version
:
5
,
Chart
:
ch2
})},
},
},
{
{
name
:
"install a release with 'upgrade --install'"
,
name
:
"install a release with 'upgrade --install'"
,
args
:
[]
string
{
"zany-bunny"
,
chartPath
},
args
:
[]
string
{
"zany-bunny"
,
chartPath
},
flags
:
[]
string
{
"-i"
},
flags
:
[]
string
{
"-i"
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"zany-bunny"
,
version
:
1
,
c
hart
:
ch
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"zany-bunny"
,
Version
:
1
,
C
hart
:
ch
}),
expected
:
"Release
\"
zany-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
zany-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"zany-bunny"
,
Version
:
1
,
Chart
:
ch
})},
},
},
{
{
name
:
"install a release with 'upgrade --install' and timeout"
,
name
:
"install a release with 'upgrade --install' and timeout"
,
args
:
[]
string
{
"crazy-bunny"
,
chartPath
},
args
:
[]
string
{
"crazy-bunny"
,
chartPath
},
flags
:
[]
string
{
"-i"
,
"--timeout"
,
"120"
},
flags
:
[]
string
{
"-i"
,
"--timeout"
,
"120"
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"crazy-bunny"
,
version
:
1
,
c
hart
:
ch
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"crazy-bunny"
,
Version
:
1
,
C
hart
:
ch
}),
expected
:
"Release
\"
crazy-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
crazy-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"crazy-bunny"
,
Version
:
1
,
Chart
:
ch
})},
},
},
{
{
name
:
"upgrade a release with wait"
,
name
:
"upgrade a release with wait"
,
args
:
[]
string
{
"crazy-bunny"
,
chartPath
},
args
:
[]
string
{
"crazy-bunny"
,
chartPath
},
flags
:
[]
string
{
"--wait"
},
flags
:
[]
string
{
"--wait"
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"crazy-bunny"
,
version
:
2
,
c
hart
:
ch2
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"crazy-bunny"
,
Version
:
2
,
C
hart
:
ch2
}),
expected
:
"Release
\"
crazy-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
expected
:
"Release
\"
crazy-bunny
\"
has been upgraded. Happy Helming!
\n
"
,
rels
:
[]
*
release
.
Release
{
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"crazy-bunny"
,
Version
:
2
,
Chart
:
ch2
})},
},
},
{
{
name
:
"upgrade a release with missing dependencies"
,
name
:
"upgrade a release with missing dependencies"
,
args
:
[]
string
{
"bonkers-bunny"
,
missingDepsPath
},
args
:
[]
string
{
"bonkers-bunny"
,
missingDepsPath
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"bonkers-bunny"
,
version
:
1
,
c
hart
:
ch3
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"bonkers-bunny"
,
Version
:
1
,
C
hart
:
ch3
}),
err
:
true
,
err
:
true
,
},
},
{
{
name
:
"upgrade a release with bad dependencies"
,
name
:
"upgrade a release with bad dependencies"
,
args
:
[]
string
{
"bonkers-bunny"
,
badDepsPath
},
args
:
[]
string
{
"bonkers-bunny"
,
badDepsPath
},
resp
:
releaseMock
(
&
releaseOptions
{
name
:
"bonkers-bunny"
,
version
:
1
,
c
hart
:
ch3
}),
resp
:
helm
.
ReleaseMock
(
&
helm
.
MockReleaseOptions
{
Name
:
"bonkers-bunny"
,
Version
:
1
,
C
hart
:
ch3
}),
err
:
true
,
err
:
true
,
},
},
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment