github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/api/charmrevisionupdater/updater_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package charmrevisionupdater_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 "github.com/juju/utils" 9 gc "gopkg.in/check.v1" 10 "gopkg.in/juju/charm.v6-unstable" 11 12 "github.com/juju/juju/api/charmrevisionupdater" 13 "github.com/juju/juju/apiserver/charmrevisionupdater/testing" 14 jujutesting "github.com/juju/juju/juju/testing" 15 "github.com/juju/juju/state" 16 ) 17 18 type versionUpdaterSuite struct { 19 jujutesting.JujuConnSuite 20 testing.CharmSuite 21 22 updater *charmrevisionupdater.State 23 } 24 25 var _ = gc.Suite(&versionUpdaterSuite{}) 26 27 func (s *versionUpdaterSuite) SetUpSuite(c *gc.C) { 28 s.JujuConnSuite.SetUpSuite(c) 29 s.CharmSuite.SetUpSuite(c, &s.JujuConnSuite) 30 } 31 32 func (s *versionUpdaterSuite) TearDownSuite(c *gc.C) { 33 s.CharmSuite.TearDownSuite(c) 34 s.JujuConnSuite.TearDownSuite(c) 35 } 36 37 func (s *versionUpdaterSuite) SetUpTest(c *gc.C) { 38 s.JujuConnSuite.SetUpTest(c) 39 s.CharmSuite.SetUpTest(c) 40 41 machine, err := s.State.AddMachine("quantal", state.JobManageModel) 42 c.Assert(err, jc.ErrorIsNil) 43 password, err := utils.RandomPassword() 44 c.Assert(err, jc.ErrorIsNil) 45 err = machine.SetPassword(password) 46 c.Assert(err, jc.ErrorIsNil) 47 err = machine.SetProvisioned("i-manager", "fake_nonce", nil) 48 c.Assert(err, jc.ErrorIsNil) 49 st := s.OpenAPIAsMachine(c, machine.Tag(), password, "fake_nonce") 50 c.Assert(st, gc.NotNil) 51 52 s.updater = charmrevisionupdater.NewState(st) 53 c.Assert(s.updater, gc.NotNil) 54 } 55 56 func (s *versionUpdaterSuite) TearDownTest(c *gc.C) { 57 s.CharmSuite.TearDownTest(c) 58 s.JujuConnSuite.TearDownTest(c) 59 } 60 61 func (s *versionUpdaterSuite) TestUpdateRevisions(c *gc.C) { 62 s.SetupScenario(c) 63 err := s.updater.UpdateLatestRevisions() 64 c.Assert(err, jc.ErrorIsNil) 65 66 curl := charm.MustParseURL("cs:quantal/mysql") 67 pending, err := s.State.LatestPlaceholderCharm(curl) 68 c.Assert(err, jc.ErrorIsNil) 69 c.Assert(pending.String(), gc.Equals, "cs:quantal/mysql-23") 70 }