github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/docker/registry/registry_test.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package registry_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/docker" 11 "github.com/juju/juju/docker/registry" 12 ) 13 14 type registrySuite struct { 15 } 16 17 var _ = gc.Suite(®istrySuite{}) 18 19 func (s *registrySuite) TestErrorsOnDockerDefault(c *gc.C) { 20 reg, err := registry.New(docker.ImageRepoDetails{ 21 Repository: "jujusolutions", 22 }) 23 c.Assert(err, gc.ErrorMatches, `oci reference "jujusolutions" must have a domain`) 24 c.Assert(reg, gc.IsNil) 25 } 26 27 func (s *registrySuite) TestSelectsAWSPrivate(c *gc.C) { 28 reg, err := registry.New(docker.ImageRepoDetails{ 29 Repository: "123456.dkr.ecr.eu-west-1.amazonaws.com", 30 BasicAuthConfig: docker.BasicAuthConfig{ 31 Username: "access key id", 32 Password: "secret key", 33 }, 34 Region: "us-west-1", 35 }) 36 c.Assert(err, jc.ErrorIsNil) 37 c.Assert(reg, gc.NotNil) 38 c.Assert(reg.String(), gc.Equals, "*.dkr.ecr.*.amazonaws.com") 39 } 40 41 func (s *registrySuite) TestSelectsDockerHub(c *gc.C) { 42 reg, err := registry.New(docker.ImageRepoDetails{ 43 Repository: "docker.io/jujusolutions", 44 }) 45 c.Assert(err, jc.ErrorIsNil) 46 c.Assert(reg, gc.NotNil) 47 c.Assert(reg.String(), gc.Equals, "docker.io") 48 } 49 50 func (s *registrySuite) TestSelectsGithubContainerRegistry(c *gc.C) { 51 reg, err := registry.New(docker.ImageRepoDetails{ 52 Repository: "ghcr.io/juju", 53 }) 54 c.Assert(err, jc.ErrorIsNil) 55 c.Assert(reg, gc.NotNil) 56 c.Assert(reg.String(), gc.Equals, "ghcr.io") 57 } 58 59 func (s *registrySuite) TestSelectsAWSPublic(c *gc.C) { 60 reg, err := registry.New(docker.ImageRepoDetails{ 61 Repository: "public.ecr.aws/juju", 62 }) 63 c.Assert(err, jc.ErrorIsNil) 64 c.Assert(reg, gc.NotNil) 65 c.Assert(reg.String(), gc.Equals, "public.ecr.aws") 66 }