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(&registrySuite{})
    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  }