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