Skip to content

Commit 8a7453f

Browse files
committed
Merge pull request #321 from batikanu/fix-deploy-file-test
Update deploy file test
2 parents ec91b7a + e5dc474 commit 8a7453f

File tree

3 files changed

+25
-16
lines changed

3 files changed

+25
-16
lines changed

src/app/backend/apihandler.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,13 @@ func CreateHttpApiHandler(client *client.Client, heapsterClient HeapsterClient)
8787

8888
deployFromFileWs := new(restful.WebService)
8989
deployFromFileWs.Path("/api/appdeploymentfromfile").
90-
Consumes(restful.MIME_JSON).
91-
Produces(restful.MIME_JSON)
90+
Consumes(restful.MIME_JSON).
91+
Produces(restful.MIME_JSON)
9292
deployFromFileWs.Route(
9393
deployFromFileWs.POST("").
94-
To(apiHandler.handleDeployFromFile).
95-
Reads(AppDeploymentFromFileSpec{}).
96-
Writes(AppDeploymentFromFileSpec{}))
94+
To(apiHandler.handleDeployFromFile).
95+
Reads(AppDeploymentFromFileSpec{}).
96+
Writes(AppDeploymentFromFileSpec{}))
9797
wsContainer.Add(deployFromFileWs)
9898

9999
replicaSetWs := new(restful.WebService)
@@ -205,7 +205,7 @@ func (apiHandler *ApiHandler) handleDeployFromFile(request *restful.Request, res
205205
handleInternalError(response, err)
206206
return
207207
}
208-
if err := DeployAppFromFile(deploymentSpec); err != nil {
208+
if err := DeployAppFromFile(deploymentSpec, CreateObjectFromInfoFn); err != nil {
209209
handleInternalError(response, err)
210210
return
211211
}

src/app/backend/deploy.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,16 @@ func getLabelsMap(labels []Label) map[string]string {
243243
return result
244244
}
245245

246+
type createObjectFromInfo func(info *kubectlResource.Info) error
247+
248+
// Implementation of createObjectFromInfo
249+
var CreateObjectFromInfoFn = func(info *kubectlResource.Info) error {
250+
_, err := kubectlResource.NewHelper(info.Client, info.Mapping).Create(info.Namespace, true, info.Object)
251+
return err
252+
}
253+
246254
// Deploys an app based on the given yaml or json file.
247-
func DeployAppFromFile(spec *AppDeploymentFromFileSpec) error {
255+
func DeployAppFromFile(spec *AppDeploymentFromFileSpec, createObjectFromInfoFn createObjectFromInfo) error {
248256
const (
249257
validate = true
250258
emptyCacheDir = ""
@@ -267,13 +275,11 @@ func DeployAppFromFile(spec *AppDeploymentFromFileSpec) error {
267275
Do()
268276

269277
return r.Visit(func(info *kubectlResource.Info, err error) error {
270-
// creates an object from input info
271-
_, err = kubectlResource.NewHelper(info.Client, info.Mapping).Create(info.Namespace, true, info.Object)
278+
err = createObjectFromInfoFn(info)
272279
if err != nil {
273280
return err
274281
}
275282
log.Printf("%s is deployed", info.Name)
276283
return nil
277284
})
278285
}
279-

src/test/backend/deploy_test.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"k8s.io/kubernetes/pkg/api"
2323
"k8s.io/kubernetes/pkg/api/resource"
2424
"k8s.io/kubernetes/pkg/client/unversioned/testclient"
25+
kubectlResource "k8s.io/kubernetes/pkg/kubectl/resource"
2526
)
2627

2728
func TestDeployApp(t *testing.T) {
@@ -161,19 +162,21 @@ func TestGetAvailableProtocols(t *testing.T) {
161162
}
162163

163164
func TestDeployAppFromFileWithValidContent(t *testing.T) {
165+
const (
166+
testNamespace = "test-deployfile-namespace"
167+
)
164168
validContent := "{\"kind\": \"Namespace\"," +
165169
"\"apiVersion\": \"v1\"," +
166170
"\"metadata\": {" +
167-
"\"name\": \"development\"," +
171+
"\"name\": \"" + testNamespace + "\"," +
168172
"\"labels\": {\"name\": \"development\"}}}"
169-
170173
spec := &AppDeploymentFromFileSpec{
171174
Name: "foo-name",
172175
Content: validContent,
173176
}
177+
fakeCreateObjectFromInfo := func(info *kubectlResource.Info) error { return nil }
174178

175-
err := DeployAppFromFile(spec)
176-
179+
err := DeployAppFromFile(spec, fakeCreateObjectFromInfo)
177180
if err != nil {
178181
t.Errorf("Expected return value to be %#v but got %#v", nil, err)
179182
}
@@ -184,9 +187,9 @@ func TestDeployAppFromFileWithInvalidContent(t *testing.T) {
184187
Name: "foo-name",
185188
Content: "foo-content-invalid",
186189
}
190+
fakeCreateObjectFromInfo := func(info *kubectlResource.Info) error { return nil }
187191

188-
err := DeployAppFromFile(spec)
189-
192+
err := DeployAppFromFile(spec, fakeCreateObjectFromInfo)
190193
if err == nil {
191194
t.Errorf("Expected return value to be an error but got %#v", nil)
192195
}

0 commit comments

Comments
 (0)