Skip to content

Commit 67a9adb

Browse files
author
Keerthan Mala
committed
Update the unit tests according to the code changes
1 parent f566329 commit 67a9adb

21 files changed

Lines changed: 94 additions & 697 deletions

glide.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,5 @@ import:
3333
- package: github.com/arschles/assert
3434
version: 6882f85ccdc7c1822b146d1a6b0c2c48f91b5140
3535
- package: github.com/docker/distribution
36-
repo: https://github.com/kmala/distribution
36+
repo: https://github.com/deis/distribution
3737
vcs: git

pkg/conf/config.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const (
1313
storageCredLocation = "/var/run/secrets/deis/objectstore/creds/"
1414
minioHostEnvVar = "DEIS_MINIO_SERVICE_HOST"
1515
minioPortEnvVar = "DEIS_MINIO_SERVICE_PORT"
16+
gcsKey = "key.json"
1617
)
1718

1819
type Parameters map[string]interface{}
@@ -54,7 +55,8 @@ func GetStorageParams(env sys.Env) (Parameters, error) {
5455
if err != nil {
5556
return nil, err
5657
}
57-
if file.Name() == "key.json" {
58+
//GCS expect the to have the location of the service account credential json file
59+
if file.Name() == gcsKey {
5860
params["keyfile"] = storageCredLocation + file.Name()
5961
} else {
6062
params[file.Name()] = string(data)
@@ -66,7 +68,7 @@ func GetStorageParams(env sys.Env) (Parameters, error) {
6668
mHost := env.Get(minioHostEnvVar)
6769
mPort := env.Get(minioPortEnvVar)
6870
params["regionendpoint"] = fmt.Sprintf("http://%s:%s", mHost, mPort)
69-
params["secure"] = "false"
71+
params["secure"] = false
7072
params["region"] = "us-east-1"
7173
params["bucket"] = "git"
7274
}

pkg/gitreceive/build.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func build(conf *Config, storageDriver storagedriver.StorageDriver, kubeClient *
6464
return fmt.Errorf("unable to create tmpdir %s (%s)", buildDir, err)
6565
}
6666

67-
slugBuilderInfo := storage.NewSlugBuilderInfo(slugName)
67+
slugBuilderInfo := NewSlugBuilderInfo(slugName)
6868

6969
// Get the application config from the controller, so we can check for a custom buildpack URL
7070
appConf, err := getAppConfig(conf, builderKey, conf.Username, appName)
@@ -106,7 +106,7 @@ func build(conf *Config, storageDriver storagedriver.StorageDriver, kubeClient *
106106
return fmt.Errorf("error while reading file %s: (%s)", appTgz, err)
107107
}
108108

109-
//log.Debug("Uploading tar to %s/%s/%s", s3Client.Endpoint.FullURL(), conf.Bucket, slugBuilderInfo.TarKey())
109+
log.Debug("Uploading tar to %s", slugBuilderInfo.TarKey())
110110

111111
if err := storageDriver.PutContent(context.Background(), slugBuilderInfo.TarKey(), appTgzdata); err != nil {
112112
return fmt.Errorf("uploading %s to %s (%v)", absAppTgz, slugBuilderInfo.TarKey(), err)
@@ -268,7 +268,7 @@ func prettyPrintJSON(data interface{}) (string, error) {
268268
return string(formatted.Bytes()), nil
269269
}
270270

271-
func getProcFile(storageDriver storagedriver.StorageDriver, dirName, procfileKey string) (pkg.ProcessType, error) {
271+
func getProcFile(getter storage.ObjectGetter, dirName, procfileKey string) (pkg.ProcessType, error) {
272272
procType := pkg.ProcessType{}
273273
if _, err := os.Stat(fmt.Sprintf("%s/Procfile", dirName)); err == nil {
274274
rawProcFile, err := ioutil.ReadFile(fmt.Sprintf("%s/Procfile", dirName))
@@ -281,7 +281,7 @@ func getProcFile(storageDriver storagedriver.StorageDriver, dirName, procfileKey
281281
return procType, nil
282282
}
283283
log.Debug("Procfile not present. Getting it from the buildpack")
284-
rawProcFile, err := storageDriver.GetContent(context.Background(), procfileKey)
284+
rawProcFile, err := getter.GetContent(context.Background(), procfileKey)
285285
if err != nil {
286286
return nil, fmt.Errorf("error in reading %s (%s)", procfileKey, err)
287287
}

pkg/gitreceive/build_test.go

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import (
77
"os"
88
"testing"
99

10-
"gopkg.in/yaml.v2"
11-
1210
"github.com/arschles/assert"
1311
"github.com/deis/builder/pkg"
1412
"github.com/deis/builder/pkg/storage"
13+
"github.com/docker/distribution/context"
14+
"gopkg.in/yaml.v2"
1515
)
1616

1717
const (
@@ -33,8 +33,8 @@ func TestGetProcFileFromRepoSuccess(t *testing.T) {
3333
t.Fatalf("failed to remove Procfile from %s (%s)", tmpDir, err)
3434
}
3535
}()
36-
getter := &storage.RealObjectGetter{}
37-
procType, err := getProcFile(getter, tmpDir, bucketName, objKey)
36+
getter := &storage.FakeObjectGetter{}
37+
procType, err := getProcFile(getter, tmpDir, objKey)
3838
actualData := pkg.ProcessType{}
3939
yaml.Unmarshal(data, &actualData)
4040
assert.NoErr(t, err)
@@ -55,39 +55,36 @@ func TestGetProcFileFromRepoFailure(t *testing.T) {
5555
t.Fatalf("failed to remove Procfile from %s (%s)", tmpDir, err)
5656
}
5757
}()
58-
getter := &storage.RealObjectGetter{}
59-
_, err = getProcFile(getter, tmpDir, bucketName, objKey)
58+
getter := &storage.FakeObjectGetter{}
59+
_, err = getProcFile(getter, tmpDir, objKey)
6060

6161
assert.True(t, err != nil, "no error received when there should have been")
6262
}
6363

6464
func TestGetProcFileFromServerSuccess(t *testing.T) {
6565
data := []byte("web: example-go")
66-
obj := &storage.FakeObject{Data: string(data)}
6766
getter := &storage.FakeObjectGetter{
68-
Fn: func(string, string) (storage.Object, error) {
69-
return obj, nil
67+
Fn: func(context.Context, string) ([]byte, error) {
68+
return data, nil
7069
},
7170
}
7271

73-
procType, err := getProcFile(getter, "", bucketName, objKey)
72+
procType, err := getProcFile(getter, "", objKey)
7473
actualData := pkg.ProcessType{}
7574
yaml.Unmarshal(data, &actualData)
7675
assert.NoErr(t, err)
7776
assert.Equal(t, procType, actualData, "data")
7877
}
7978

8079
func TestGetProcFileFromServerFailure(t *testing.T) {
81-
data := []byte("web: example-go")
82-
obj := &storage.FakeObject{Data: string(data)}
8380
expectedErr := errors.New("test error")
8481
getter := &storage.FakeObjectGetter{
85-
Fn: func(string, string) (storage.Object, error) {
86-
return obj, expectedErr
82+
Fn: func(context.Context, string) ([]byte, error) {
83+
return []byte("web: example-go"), expectedErr
8784
},
8885
}
8986

90-
_, err := getProcFile(getter, "", bucketName, objKey)
91-
assert.Err(t, err, fmt.Errorf("error in reading %s/%s (%s)", bucketName, objKey, expectedErr))
87+
_, err := getProcFile(getter, "", objKey)
88+
assert.Err(t, err, fmt.Errorf("error in reading %s (%s)", objKey, expectedErr))
9289
assert.True(t, err != nil, "no error received when there should have been")
9390
}

pkg/gitreceive/controller_test.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,22 @@ import (
66
"github.com/arschles/assert"
77
"github.com/deis/builder/pkg"
88
"github.com/deis/builder/pkg/gitreceive/git"
9-
"github.com/deis/builder/pkg/storage"
109
)
1110

1211
const (
1312
rawSha = "c3b4e4ba8b7267226ff02ad07a3a2cca9c9237de"
1413
bucket = "git"
1514
appName = "myapp"
16-
slugName = "myslug"
1715
username = "myuser"
1816
)
1917

2018
func TestCreateBuildHook(t *testing.T) {
2119
procType := pkg.ProcessType(make(map[string]string))
2220
sha, err := git.NewSha(rawSha)
2321
assert.NoErr(t, err)
24-
endpoint := &storage.Endpoint{URLStr: "s3.amazonaws.com", Secure: false}
25-
slugBuilderInfo := NewSlugBuilderInfo(endpoint, bucket, appName, slugName, sha)
22+
23+
slugName := appName + ":git-" + sha.Short()
24+
slugBuilderInfo := NewSlugBuilderInfo(slugName)
2625
hookUsingDockerfile := createBuildHook(slugBuilderInfo, sha, username, appName, procType, true)
2726
assert.Equal(t, hookUsingDockerfile.Sha, sha.Short(), "git sha")
2827
assert.Equal(t, hookUsingDockerfile.ReceiveUser, username, "username")
@@ -35,7 +34,6 @@ func TestCreateBuildHook(t *testing.T) {
3534
assert.Equal(t, hookNoDockerfile.Sha, sha.Short(), "git sha")
3635
assert.Equal(t, hookNoDockerfile.ReceiveUser, username, "username")
3736
assert.Equal(t, hookNoDockerfile.ReceiveRepo, appName, "username")
38-
assert.Equal(t, hookNoDockerfile.Image, slugBuilderInfo.AbsoluteSlugURL(), "image")
3937
assert.Equal(t, hookNoDockerfile.Procfile, procType, "procfile")
4038
assert.Equal(t, hookNoDockerfile.Dockerfile, "", "dockerfile field")
4139

pkg/gitreceive/k8s_util.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const (
2121
objectStore = "objectstorage-keyfile"
2222
dockerSocketName = "docker-socket"
2323
dockerSocketPath = "/var/run/docker.sock"
24+
builderStorage = "BUILDER_STORAGE"
25+
objectStorePath = "/var/run/secrets/deis/objectstore/creds"
2426
)
2527

2628
func dockerBuilderPodName(appName, shortSha string) string {
@@ -41,7 +43,7 @@ func dockerBuilderPod(debug bool, name, namespace string, env map[string]interfa
4143

4244
addEnvToPod(pod, tarPath, tarKey)
4345
addEnvToPod(pod, "IMG_NAME", imageName)
44-
addEnvToPod(pod, "BUILDER_STORAGE", storageType)
46+
addEnvToPod(pod, builderStorage, storageType)
4547

4648
pod.Spec.Containers[0].VolumeMounts = append(pod.Spec.Containers[0].VolumeMounts, api.VolumeMount{
4749
Name: dockerSocketName,
@@ -68,7 +70,7 @@ func slugbuilderPod(debug bool, name, namespace string, env map[string]interface
6870

6971
addEnvToPod(pod, tarPath, tarKey)
7072
addEnvToPod(pod, putPath, putKey)
71-
addEnvToPod(pod, "BUILDER_STORAGE", storageType)
73+
addEnvToPod(pod, builderStorage, storageType)
7274

7375
if buildpackURL != "" {
7476
addEnvToPod(pod, "BUILDPACK_URL", buildpackURL)
@@ -109,7 +111,7 @@ func buildPod(debug bool, name, namespace string, env map[string]interface{}) ap
109111
pod.Spec.Containers[0].VolumeMounts = []api.VolumeMount{
110112
api.VolumeMount{
111113
Name: objectStore,
112-
MountPath: "/var/run/secrets/deis/objectstore/creds",
114+
MountPath: objectStorePath,
113115
ReadOnly: true,
114116
},
115117
}

pkg/gitreceive/k8s_util_test.go

Lines changed: 28 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,25 @@ func TestSlugBuilderPodName(t *testing.T) {
2424

2525
type slugBuildCase struct {
2626
debug bool
27-
withAuth bool
2827
name string
2928
namespace string
3029
env map[string]interface{}
31-
tarURL string
32-
putURL string
30+
tarKey string
31+
putKey string
3332
buildPack string
3433
slugBuilderImage string
34+
storageType string
3535
}
3636

3737
type dockerBuildCase struct {
3838
debug bool
39-
withAuth bool
4039
name string
4140
namespace string
4241
env map[string]interface{}
43-
tarURL string
42+
tarKey string
4443
imgName string
45-
region string
4644
dockerBuilderImage string
45+
storageType string
4746
}
4847

4948
func TestBuildPod(t *testing.T) {
@@ -55,18 +54,18 @@ func TestBuildPod(t *testing.T) {
5554
var pod *api.Pod
5655

5756
slugBuilds := []slugBuildCase{
58-
{true, true, "test", "default", emptyEnv, "tar", "put-url", "", ""},
59-
{true, false, "test", "default", emptyEnv, "tar", "put-url", "", ""},
60-
{true, true, "test", "default", env, "tar", "put-url", "", ""},
61-
{true, false, "test", "default", env, "tar", "put-url", "", ""},
62-
{true, true, "test", "default", emptyEnv, "tar", "put-url", "buildpack", ""},
63-
{true, false, "test", "default", emptyEnv, "tar", "put-url", "buildpack", ""},
64-
{true, true, "test", "default", env, "tar", "put-url", "buildpack", ""},
65-
{true, false, "test", "default", env, "tar", "put-url", "buildpack", "customimage"},
57+
{true, "test", "default", emptyEnv, "tar", "put-url", "", "", ""},
58+
{true, "test", "default", emptyEnv, "tar", "put-url", "", "", ""},
59+
{true, "test", "default", env, "tar", "put-url", "", "", ""},
60+
{true, "test", "default", env, "tar", "put-url", "", "", ""},
61+
{true, "test", "default", emptyEnv, "tar", "put-url", "buildpack", "", ""},
62+
{true, "test", "default", emptyEnv, "tar", "put-url", "buildpack", "", ""},
63+
{true, "test", "default", env, "tar", "put-url", "buildpack", "", ""},
64+
{true, "test", "default", env, "tar", "put-url", "buildpack", "customimage", ""},
6665
}
6766

6867
for _, build := range slugBuilds {
69-
pod = slugbuilderPod(build.debug, build.withAuth, build.name, build.namespace, build.env, build.tarURL, build.putURL, build.buildPack, build.slugBuilderImage)
68+
pod = slugbuilderPod(build.debug, build.name, build.namespace, build.env, build.tarKey, build.putKey, build.buildPack, build.slugBuilderImage, build.storageType)
7069

7170
if pod.ObjectMeta.Name != build.name {
7271
t.Errorf("expected %v but returned %v ", build.name, pod.ObjectMeta.Name)
@@ -76,8 +75,8 @@ func TestBuildPod(t *testing.T) {
7675
t.Errorf("expected %v but returned %v ", build.namespace, pod.ObjectMeta.Namespace)
7776
}
7877

79-
checkForEnv(t, pod, "TAR_URL", build.tarURL)
80-
checkForEnv(t, pod, "put_url", build.putURL)
78+
checkForEnv(t, pod, "TAR_PATH", build.tarKey)
79+
checkForEnv(t, pod, "PUT_PATH", build.putKey)
8180

8281
if build.buildPack != "" {
8382
checkForEnv(t, pod, "BUILDPACK_URL", build.buildPack)
@@ -91,29 +90,28 @@ func TestBuildPod(t *testing.T) {
9190
}
9291

9392
dockerBuilds := []dockerBuildCase{
94-
{true, true, "test", "default", emptyEnv, "tar", "", "us-east-1", ""},
95-
{true, false, "test", "default", emptyEnv, "tar", "", "us-east-1", ""},
96-
{true, true, "test", "default", env, "tar", "", "us-east-1", ""},
97-
{true, false, "test", "default", env, "tar", "", "us-east-1", ""},
98-
{true, true, "test", "default", emptyEnv, "tar", "img", "us-east-1", ""},
99-
{true, false, "test", "default", emptyEnv, "tar", "img", "us-east-1", ""},
100-
{true, true, "test", "default", env, "tar", "img", "us-east-1", ""},
101-
{true, false, "test", "default", env, "tar", "img", "us-east-1", "customimage"},
93+
{true, "test", "default", emptyEnv, "tar", "", "", ""},
94+
{true, "test", "default", emptyEnv, "tar", "", "", ""},
95+
{true, "test", "default", env, "tar", "", "", ""},
96+
{true, "test", "default", env, "tar", "", "", ""},
97+
{true, "test", "default", emptyEnv, "tar", "img", "", ""},
98+
{true, "test", "default", emptyEnv, "tar", "img", "", ""},
99+
{true, "test", "default", env, "tar", "img", "", ""},
100+
{true, "test", "default", env, "tar", "img", "customimage", ""},
102101
}
103102

104103
for _, build := range dockerBuilds {
105-
pod = dockerBuilderPod(build.debug, build.withAuth, build.name, build.namespace, build.env, build.tarURL, build.imgName, build.region, build.dockerBuilderImage)
104+
pod = dockerBuilderPod(build.debug, build.name, build.namespace, build.env, build.tarKey, build.imgName, build.dockerBuilderImage, build.storageType)
106105

107106
if pod.ObjectMeta.Name != build.name {
108107
t.Errorf("expected %v but returned %v ", build.name, pod.ObjectMeta.Name)
109108
}
110109
if pod.ObjectMeta.Namespace != build.namespace {
111110
t.Errorf("expected %v but returned %v ", build.namespace, pod.ObjectMeta.Namespace)
112111
}
113-
if !build.withAuth {
114-
checkForEnv(t, pod, "TAR_URL", build.tarURL)
115-
checkForEnv(t, pod, "IMG_NAME", build.imgName)
116-
}
112+
113+
checkForEnv(t, pod, "TAR_PATH", build.tarKey)
114+
checkForEnv(t, pod, "IMG_NAME", build.imgName)
117115
if build.dockerBuilderImage != "" {
118116
if pod.Spec.Containers[0].Image != build.dockerBuilderImage {
119117
t.Errorf("expected %v but returned %v ", build.dockerBuilderImage, pod.Spec.Containers[0].Image)

pkg/gitreceive/slug_builder_info_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55

66
"github.com/arschles/assert"
77
"github.com/deis/builder/pkg/gitreceive/git"
8-
"github.com/deis/builder/pkg/storage"
98
)
109

1110
func TestPushKey(t *testing.T) {
@@ -25,7 +24,8 @@ func TestTarKey(t *testing.T) {
2524
if err != nil {
2625
t.Fatalf("error building git sha (%s)", err)
2726
}
28-
sbi := NewSlugBuilderInfo(appName + ":git-" + sha.Short())
27+
slugName := appName + ":git-" + sha.Short()
28+
sbi := NewSlugBuilderInfo(slugName)
2929
expectedTarKey := "home/" + slugName + "/tar"
3030
if sbi.TarKey() != expectedTarKey {
3131
t.Errorf("tar key %s didn't match expected %s", sbi.TarKey(), expectedTarKey)

0 commit comments

Comments
 (0)