github.com/Pankov404/juju@v0.0.0-20150703034450-be266991dceb/provider/maas/maas_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package maas 5 6 import ( 7 "time" 8 9 gc "gopkg.in/check.v1" 10 "launchpad.net/gomaasapi" 11 12 "github.com/juju/juju/environs" 13 "github.com/juju/juju/environs/config" 14 envtesting "github.com/juju/juju/environs/testing" 15 "github.com/juju/juju/feature" 16 coretesting "github.com/juju/juju/testing" 17 ) 18 19 // Ensure maasEnviron supports environs.NetworkingEnviron. 20 var _ environs.NetworkingEnviron = (*maasEnviron)(nil) 21 22 type providerSuite struct { 23 coretesting.FakeJujuHomeSuite 24 envtesting.ToolsFixture 25 testMAASObject *gomaasapi.TestMAASObject 26 } 27 28 var _ = gc.Suite(&providerSuite{}) 29 30 func (s *providerSuite) SetUpSuite(c *gc.C) { 31 s.FakeJujuHomeSuite.SetUpSuite(c) 32 restoreTimeouts := envtesting.PatchAttemptStrategies(&shortAttempt) 33 TestMAASObject := gomaasapi.NewTestMAAS("1.0") 34 s.testMAASObject = TestMAASObject 35 restoreFinishBootstrap := envtesting.DisableFinishBootstrap() 36 s.AddSuiteCleanup(func(*gc.C) { 37 restoreFinishBootstrap() 38 restoreTimeouts() 39 }) 40 s.PatchValue(&nodeDeploymentTimeout, func(*maasEnviron) time.Duration { 41 return coretesting.ShortWait 42 }) 43 } 44 45 func (s *providerSuite) SetUpTest(c *gc.C) { 46 s.FakeJujuHomeSuite.SetUpTest(c) 47 s.ToolsFixture.SetUpTest(c) 48 s.SetFeatureFlags(feature.AddressAllocation) 49 } 50 51 func (s *providerSuite) TearDownTest(c *gc.C) { 52 s.testMAASObject.TestServer.Clear() 53 s.ToolsFixture.TearDownTest(c) 54 s.FakeJujuHomeSuite.TearDownTest(c) 55 } 56 57 func (s *providerSuite) TearDownSuite(c *gc.C) { 58 s.testMAASObject.Close() 59 s.FakeJujuHomeSuite.TearDownSuite(c) 60 } 61 62 const exampleAgentName = "dfb69555-0bc4-4d1f-85f2-4ee390974984" 63 64 var maasEnvAttrs = coretesting.Attrs{ 65 "name": "test env", 66 "type": "maas", 67 "maas-oauth": "a:b:c", 68 "maas-agent-name": exampleAgentName, 69 } 70 71 // makeEnviron creates a functional maasEnviron for a test. 72 func (suite *providerSuite) makeEnviron() *maasEnviron { 73 testAttrs := maasEnvAttrs 74 testAttrs["maas-server"] = suite.testMAASObject.TestServer.URL 75 attrs := coretesting.FakeConfig().Merge(maasEnvAttrs) 76 cfg, err := config.New(config.NoDefaults, attrs) 77 if err != nil { 78 panic(err) 79 } 80 env, err := NewEnviron(cfg) 81 if err != nil { 82 panic(err) 83 } 84 return env 85 }