github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/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 gc "gopkg.in/check.v1" 8 "launchpad.net/gomaasapi" 9 10 "github.com/juju/juju/environs/config" 11 envtesting "github.com/juju/juju/environs/testing" 12 coretesting "github.com/juju/juju/testing" 13 ) 14 15 type providerSuite struct { 16 coretesting.BaseSuite 17 envtesting.ToolsFixture 18 testMAASObject *gomaasapi.TestMAASObject 19 restoreTimeouts func() 20 } 21 22 var _ = gc.Suite(&providerSuite{}) 23 24 func (s *providerSuite) SetUpSuite(c *gc.C) { 25 s.restoreTimeouts = envtesting.PatchAttemptStrategies(&shortAttempt, &longAttempt) 26 s.BaseSuite.SetUpSuite(c) 27 TestMAASObject := gomaasapi.NewTestMAAS("1.0") 28 s.testMAASObject = TestMAASObject 29 restoreFinishBootstrap := envtesting.DisableFinishBootstrap() 30 s.AddSuiteCleanup(func(*gc.C) { restoreFinishBootstrap() }) 31 } 32 33 func (s *providerSuite) SetUpTest(c *gc.C) { 34 s.BaseSuite.SetUpTest(c) 35 s.ToolsFixture.SetUpTest(c) 36 } 37 38 func (s *providerSuite) TearDownTest(c *gc.C) { 39 s.testMAASObject.TestServer.Clear() 40 s.ToolsFixture.TearDownTest(c) 41 s.BaseSuite.TearDownTest(c) 42 } 43 44 func (s *providerSuite) TearDownSuite(c *gc.C) { 45 s.testMAASObject.Close() 46 s.restoreTimeouts() 47 s.BaseSuite.TearDownSuite(c) 48 } 49 50 const exampleAgentName = "dfb69555-0bc4-4d1f-85f2-4ee390974984" 51 52 var maasEnvAttrs = coretesting.Attrs{ 53 "name": "test env", 54 "type": "maas", 55 "maas-oauth": "a:b:c", 56 "maas-agent-name": exampleAgentName, 57 } 58 59 // makeEnviron creates a functional maasEnviron for a test. 60 func (suite *providerSuite) makeEnviron() *maasEnviron { 61 testAttrs := maasEnvAttrs 62 testAttrs["maas-server"] = suite.testMAASObject.TestServer.URL 63 attrs := coretesting.FakeConfig().Merge(maasEnvAttrs) 64 cfg, err := config.New(config.NoDefaults, attrs) 65 if err != nil { 66 panic(err) 67 } 68 env, err := NewEnviron(cfg) 69 if err != nil { 70 panic(err) 71 } 72 return env 73 }