summaryrefslogtreecommitdiffstats
path: root/pkg/container/docker_pull_test.go
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-20 23:07:42 +0200
committerDaniel Baumann <daniel@debian.org>2024-11-09 15:38:42 +0100
commit714c83b2736d7e308bc33c49057952490eb98be2 (patch)
tree1d9ba7035798368569cd49056f4d596efc908cd8 /pkg/container/docker_pull_test.go
parentInitial commit. (diff)
downloadforgejo-act-debian.tar.xz
forgejo-act-debian.zip
Adding upstream version 1.21.4.HEADupstream/1.21.4upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'pkg/container/docker_pull_test.go')
-rw-r--r--pkg/container/docker_pull_test.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/pkg/container/docker_pull_test.go b/pkg/container/docker_pull_test.go
new file mode 100644
index 0000000..bfbe89d
--- /dev/null
+++ b/pkg/container/docker_pull_test.go
@@ -0,0 +1,61 @@
+package container
+
+import (
+ "context"
+ "testing"
+
+ "github.com/docker/cli/cli/config"
+
+ log "github.com/sirupsen/logrus"
+ assert "github.com/stretchr/testify/assert"
+)
+
+func init() {
+ log.SetLevel(log.DebugLevel)
+}
+
+func TestCleanImage(t *testing.T) {
+ tables := []struct {
+ imageIn string
+ imageOut string
+ }{
+ {"myhost.com/foo/bar", "myhost.com/foo/bar"},
+ {"localhost:8000/canonical/ubuntu", "localhost:8000/canonical/ubuntu"},
+ {"localhost/canonical/ubuntu:latest", "localhost/canonical/ubuntu:latest"},
+ {"localhost:8000/canonical/ubuntu:latest", "localhost:8000/canonical/ubuntu:latest"},
+ {"ubuntu", "docker.io/library/ubuntu"},
+ {"ubuntu:18.04", "docker.io/library/ubuntu:18.04"},
+ {"cibuilds/hugo:0.53", "docker.io/cibuilds/hugo:0.53"},
+ }
+
+ for _, table := range tables {
+ imageOut := cleanImage(context.Background(), table.imageIn)
+ assert.Equal(t, table.imageOut, imageOut)
+ }
+}
+
+func TestGetImagePullOptions(t *testing.T) {
+ ctx := context.Background()
+
+ config.SetDir("/non-existent/docker")
+
+ options, err := getImagePullOptions(ctx, NewDockerPullExecutorInput{})
+ assert.Nil(t, err, "Failed to create ImagePullOptions")
+ assert.Equal(t, "", options.RegistryAuth, "RegistryAuth should be empty if no username or password is set")
+
+ options, err = getImagePullOptions(ctx, NewDockerPullExecutorInput{
+ Image: "",
+ Username: "username",
+ Password: "password",
+ })
+ assert.Nil(t, err, "Failed to create ImagePullOptions")
+ assert.Equal(t, "eyJ1c2VybmFtZSI6InVzZXJuYW1lIiwicGFzc3dvcmQiOiJwYXNzd29yZCJ9", options.RegistryAuth, "Username and Password should be provided")
+
+ config.SetDir("testdata/docker-pull-options")
+
+ options, err = getImagePullOptions(ctx, NewDockerPullExecutorInput{
+ Image: "nektos/act",
+ })
+ assert.Nil(t, err, "Failed to create ImagePullOptions")
+ assert.Equal(t, "eyJ1c2VybmFtZSI6InVzZXJuYW1lIiwicGFzc3dvcmQiOiJwYXNzd29yZFxuIiwic2VydmVyYWRkcmVzcyI6Imh0dHBzOi8vaW5kZXguZG9ja2VyLmlvL3YxLyJ9", options.RegistryAuth, "RegistryAuth should be taken from local docker config")
+}