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  }