Skip to content

Commit

Permalink
generalize e2e tests for different dockerhub accounts
Browse files Browse the repository at this point in the history
  • Loading branch information
cppforlife committed May 23, 2019
1 parent 799b496 commit b0db935
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 26 deletions.
35 changes: 19 additions & 16 deletions test/e2e/build_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ func TestBuildSuccessful(t *testing.T) {
env := BuildEnv(t)
kbld := Kbld{t, env.Namespace, Logger{}}

input := `
input := env.WithRegistries(`
kind: Object
spec:
- image: docker.io/dkalinin/simple-app-kbld
- image: docker.io/*username*/kbld-e2e-tests-build
- image: simple-app-two
- image: simple-app-two-overriden
---
apiVersion: kbld.k14s.io/v1alpha1
kind: Sources
sources:
- image: docker.io/dkalinin/simple-app-kbld
- image: docker.io/*username*/kbld-e2e-tests-build
path: assets/simple-app
- image: simple-app-two
path: assets/simple-app
Expand All @@ -33,17 +33,18 @@ kind: ImageOverrides
overrides:
- image: simple-app-two-overriden
newImage: simple-app-two
`
`)

out, _ := kbld.RunWithOpts([]string{"-f", "-", "--images-annotation=false"}, RunOpts{
StdinReader: strings.NewReader(input),
})

out = regexp.MustCompile("sha256\\-[a-z0-9]{64}").ReplaceAllString(out, "SHA256-REPLACED")
out = regexp.MustCompile("docker-io-(.+)-kbld-e2e-tests-build-SHA256-REPLACED").ReplaceAllString(out, "img-title-SHA256-REPLACED")

expectedOut := `kind: Object
spec:
- image: kbld:docker-io-dkalinin-simple-app-kbld-SHA256-REPLACED
- image: kbld:img-title-SHA256-REPLACED
- image: kbld:simple-app-two-SHA256-REPLACED
- image: kbld:simple-app-two-SHA256-REPLACED
`
Expand All @@ -57,17 +58,17 @@ func TestBuildAndPushSuccessful(t *testing.T) {
env := BuildEnv(t)
kbld := Kbld{t, env.Namespace, Logger{}}

input := `
input := env.WithRegistries(`
kind: Object
spec:
- image: docker.io/dkalinin/simple-app-kbld
- image: docker.io/*username*/kbld-e2e-tests-build
- image: simple-app-two
- image: simple-app-two-overriden
---
apiVersion: kbld.k14s.io/v1alpha1
kind: Sources
sources:
- image: docker.io/dkalinin/simple-app-kbld
- image: docker.io/*username*/kbld-e2e-tests-build
path: assets/simple-app
- image: simple-app-two
path: assets/simple-app
Expand All @@ -78,9 +79,9 @@ sources:
apiVersion: kbld.k14s.io/v1alpha1
kind: ImageDestinations
destinations:
- image: docker.io/dkalinin/simple-app-kbld
- image: docker.io/*username*/kbld-e2e-tests-build
- image: simple-app-two
newImage: docker.io/dkalinin/simple-app-kbld
newImage: docker.io/*username*/kbld-e2e-tests-build
# 'unused' will not be pushed
- image: unused
path: invalid-dir
Expand All @@ -90,18 +91,20 @@ kind: ImageOverrides
overrides:
- image: simple-app-two-overriden
newImage: simple-app-two
`
`)

out, _ := kbld.RunWithOpts([]string{"-f", "-", "--images-annotation=false"}, RunOpts{
StdinReader: strings.NewReader(input),
})

expectedOut := `kind: Object
out = strings.Replace(out, regexp.MustCompile("sha256:[a-z0-9]{64}").FindString(out), "SHA256-REPLACED", -1)

expectedOut := env.WithRegistries(`kind: Object
spec:
- image: index.docker.io/dkalinin/simple-app-kbld@sha256:b8bee631fe8d51f5b09c725b36f3148b7bf1f1afd744b8f23531754a143bd4fb
- image: index.docker.io/dkalinin/simple-app-kbld@sha256:b8bee631fe8d51f5b09c725b36f3148b7bf1f1afd744b8f23531754a143bd4fb
- image: index.docker.io/dkalinin/simple-app-kbld@sha256:b8bee631fe8d51f5b09c725b36f3148b7bf1f1afd744b8f23531754a143bd4fb
`
- image: index.docker.io/*username*/kbld-e2e-tests-build@SHA256-REPLACED
- image: index.docker.io/*username*/kbld-e2e-tests-build@SHA256-REPLACED
- image: index.docker.io/*username*/kbld-e2e-tests-build@SHA256-REPLACED
`)

if out != expectedOut {
t.Fatalf("Expected >>>%s<<< to match >>>%s<<<", out, expectedOut)
Expand Down
17 changes: 12 additions & 5 deletions test/e2e/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import (
)

type Env struct {
Namespace string
PushDestination string
Namespace string
DockerHubUsername string
}

func BuildEnv(t *testing.T) Env {
env := Env{
PushDestination: os.Getenv("KBLD_E2E_PUSH_DESTINATION"),
DockerHubUsername: os.Getenv("KBLD_E2E_DOCKERHUB_USERNAME"),
}
env.Validate(t)
return env
Expand All @@ -22,11 +22,18 @@ func BuildEnv(t *testing.T) Env {
func (e Env) Validate(t *testing.T) {
errStrs := []string{}

if len(e.PushDestination) == 0 {
errStrs = append(errStrs, "Expected PushDestination to be non-empty")
if len(e.DockerHubUsername) == 0 {
errStrs = append(errStrs, "Expected DockerHubUsername to be non-empty")
}

if len(errStrs) > 0 {
t.Fatalf("%s", strings.Join(errStrs, "\n"))
}
}

func (e Env) WithRegistries(input string) string {
for _, prefix := range []string{"index.docker.io/", "docker.io/"} {
input = strings.Replace(input, prefix+"*username*/", prefix+e.DockerHubUsername+"/", -1)
}
return input
}
10 changes: 5 additions & 5 deletions test/e2e/packaging_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ spec:
t.Fatalf("Expected package output >>>%s<<< to match >>>%s<<<", out, expectedOut)
}

out, _ = kbld.RunWithOpts([]string{"unpackage", "-f", "-", "--input", path, "--repository", "docker.io/dkalinin/kbld-test-pkg-unpkg"}, RunOpts{
out, _ = kbld.RunWithOpts([]string{"unpackage", "-f", "-", "--input", path, "--repository", env.WithRegistries("docker.io/*username*/kbld-test-pkg-unpkg")}, RunOpts{
StdinReader: strings.NewReader(input),
})

expectedOut = `kind: Object
expectedOut = env.WithRegistries(`kind: Object
spec:
- image: index.docker.io/dkalinin/kbld-test-pkg-unpkg@sha256:000339fb57e0ddf2d48d72f3341e47a8ca3b1beae9bdcb25a96323095b72a79b
- image: index.docker.io/dkalinin/kbld-test-pkg-unpkg@sha256:055519529bf1ba12bf916fa42d6d3f68bdc581413621c269425bb0fee2467a93
`
- image: index.docker.io/*username*/kbld-test-pkg-unpkg@sha256:000339fb57e0ddf2d48d72f3341e47a8ca3b1beae9bdcb25a96323095b72a79b
- image: index.docker.io/*username*/kbld-test-pkg-unpkg@sha256:055519529bf1ba12bf916fa42d6d3f68bdc581413621c269425bb0fee2467a93
`)

if out != expectedOut {
t.Fatalf("Expected unpackage output >>>%s<<< to match >>>%s<<<", out, expectedOut)
Expand Down

0 comments on commit b0db935

Please sign in to comment.