mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-06 16:06:56 +00:00
* feat: use awslabs keychain for AWS and gcr keychain for GCP Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * chore: remove unused var Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * chore: remove more unused vars Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> * fix: gofumpt Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> --------- Signed-off-by: Vishal Choudhary <vishal.choudhary@nirmata.com> Co-authored-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
78 lines
1.9 KiB
Go
78 lines
1.9 KiB
Go
package pull
|
|
|
|
import (
|
|
"bytes"
|
|
"io"
|
|
"strings"
|
|
"testing"
|
|
|
|
ecr "github.com/awslabs/amazon-ecr-credential-helper/ecr-login"
|
|
"github.com/google/go-containerregistry/pkg/authn"
|
|
"github.com/google/go-containerregistry/pkg/authn/github"
|
|
"github.com/google/go-containerregistry/pkg/v1/google"
|
|
"github.com/kyverno/kyverno/pkg/registryclient"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var keychain = authn.NewMultiKeychain(
|
|
authn.DefaultKeychain,
|
|
github.Keychain,
|
|
authn.NewKeychainFromHelper(ecr.NewECRHelper(ecr.WithLogger(io.Discard))),
|
|
google.Keychain,
|
|
registryclient.AzureKeychain,
|
|
)
|
|
|
|
func TestCommandNoImageRef(t *testing.T) {
|
|
cmd := Command(keychain)
|
|
assert.NotNil(t, cmd)
|
|
err := cmd.Execute()
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestCommandWithArgs(t *testing.T) {
|
|
cmd := Command(keychain)
|
|
assert.NotNil(t, cmd)
|
|
cmd.SetArgs([]string{"foo"})
|
|
err := cmd.Execute()
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestCommandWithInvalidArg(t *testing.T) {
|
|
cmd := Command(keychain)
|
|
assert.NotNil(t, cmd)
|
|
b := bytes.NewBufferString("")
|
|
cmd.SetErr(b)
|
|
err := cmd.Execute()
|
|
assert.Error(t, err)
|
|
out, err := io.ReadAll(b)
|
|
assert.NoError(t, err)
|
|
expected := `Error: accepts 1 arg(s), received 0`
|
|
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out)))
|
|
}
|
|
|
|
func TestCommandWithInvalidFlag(t *testing.T) {
|
|
cmd := Command(keychain)
|
|
assert.NotNil(t, cmd)
|
|
b := bytes.NewBufferString("")
|
|
cmd.SetErr(b)
|
|
cmd.SetArgs([]string{"--xxx"})
|
|
err := cmd.Execute()
|
|
assert.Error(t, err)
|
|
out, err := io.ReadAll(b)
|
|
assert.NoError(t, err)
|
|
expected := `Error: unknown flag: --xxx`
|
|
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(out)))
|
|
}
|
|
|
|
func TestCommandHelp(t *testing.T) {
|
|
cmd := Command(keychain)
|
|
assert.NotNil(t, cmd)
|
|
b := bytes.NewBufferString("")
|
|
cmd.SetOut(b)
|
|
cmd.SetArgs([]string{"--help"})
|
|
err := cmd.Execute()
|
|
assert.NoError(t, err)
|
|
out, err := io.ReadAll(b)
|
|
assert.NoError(t, err)
|
|
assert.True(t, strings.HasPrefix(string(out), cmd.Long))
|
|
}
|