github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/provider/maas/credentials_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package maas_test 5 6 import ( 7 "github.com/juju/errors" 8 "github.com/juju/testing" 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/cloud" 13 "github.com/juju/juju/environs" 14 envtesting "github.com/juju/juju/environs/testing" 15 ) 16 17 type credentialsSuite struct { 18 testing.FakeHomeSuite 19 provider environs.EnvironProvider 20 } 21 22 var _ = gc.Suite(&credentialsSuite{}) 23 24 func (s *credentialsSuite) SetUpTest(c *gc.C) { 25 s.FakeHomeSuite.SetUpTest(c) 26 27 var err error 28 s.provider, err = environs.Provider("maas") 29 c.Assert(err, jc.ErrorIsNil) 30 } 31 32 func (s *credentialsSuite) TestCredentialSchemas(c *gc.C) { 33 envtesting.AssertProviderAuthTypes(c, s.provider, "oauth1") 34 } 35 36 func (s *credentialsSuite) TestOAuth1CredentialsValid(c *gc.C) { 37 envtesting.AssertProviderCredentialsValid(c, s.provider, "oauth1", map[string]string{ 38 "maas-oauth": "123:456:789", 39 }) 40 } 41 42 func (s *credentialsSuite) TestOAuth1HiddenAttributes(c *gc.C) { 43 envtesting.AssertProviderCredentialsAttributesHidden(c, s.provider, "oauth1", "maas-oauth") 44 } 45 46 func (s *credentialsSuite) TestDetectCredentials(c *gc.C) { 47 s.Home.AddFiles(c, testing.TestFile{ 48 Name: ".maasrc", 49 Data: `{"Server": "http://10.0.0.1/MAAS", "OAuth": "key"}`, 50 }) 51 creds, err := s.provider.DetectCredentials() 52 c.Assert(err, jc.ErrorIsNil) 53 c.Assert(creds.DefaultRegion, gc.Equals, "") 54 expected := cloud.NewCredential( 55 cloud.OAuth1AuthType, map[string]string{ 56 "maas-oauth": "key", 57 }, 58 ) 59 expected.Label = "MAAS credential for http://10.0.0.1/MAAS" 60 c.Assert(creds.AuthCredentials["default"], jc.DeepEquals, expected) 61 } 62 63 func (s *credentialsSuite) TestDetectCredentialsNoServer(c *gc.C) { 64 s.Home.AddFiles(c, testing.TestFile{ 65 Name: ".maasrc", 66 Data: `{"OAuth": "key"}`, 67 }) 68 creds, err := s.provider.DetectCredentials() 69 c.Assert(err, jc.ErrorIsNil) 70 c.Assert(creds.DefaultRegion, gc.Equals, "") 71 expected := cloud.NewCredential( 72 cloud.OAuth1AuthType, map[string]string{ 73 "maas-oauth": "key", 74 }, 75 ) 76 expected.Label = "MAAS credential for unspecified server" 77 c.Assert(creds.AuthCredentials["default"], jc.DeepEquals, expected) 78 } 79 80 func (s *credentialsSuite) TestDetectCredentialsNoFile(c *gc.C) { 81 _, err := s.provider.DetectCredentials() 82 c.Assert(err, jc.Satisfies, errors.IsNotFound) 83 }