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  }