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  }