diff options
author | Daniel Baumann <daniel@debian.org> | 2024-10-20 23:07:42 +0200 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2024-11-09 15:38:42 +0100 |
commit | 714c83b2736d7e308bc33c49057952490eb98be2 (patch) | |
tree | 1d9ba7035798368569cd49056f4d596efc908cd8 /pkg/container/docker_pull_test.go | |
parent | Initial commit. (diff) | |
download | forgejo-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.go | 61 |
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") +} |