25
25
envtesting "launchpad.net/juju-core/environs/testing"
26
26
"launchpad.net/juju-core/instance"
27
27
"launchpad.net/juju-core/juju"
28
"launchpad.net/juju-core/juju/osenv"
28
29
"launchpad.net/juju-core/juju/testing"
29
30
"launchpad.net/juju-core/provider/dummy"
30
31
"launchpad.net/juju-core/state"
31
32
"launchpad.net/juju-core/state/api/usermanager"
32
33
coretesting "launchpad.net/juju-core/testing"
34
"launchpad.net/juju-core/testing/testbase"
33
35
"launchpad.net/juju-core/utils"
34
36
"launchpad.net/juju-core/utils/set"
41
43
type NewConnSuite struct {
42
coretesting.FakeJujuHomeSuite
43
45
envtesting.ToolsFixture
46
48
var _ = gc.Suite(&NewConnSuite{})
48
50
func (cs *NewConnSuite) SetUpTest(c *gc.C) {
49
cs.FakeJujuHomeSuite.SetUpTest(c)
51
cs.LoggingSuite.SetUpTest(c)
50
52
cs.ToolsFixture.SetUpTest(c)
53
55
func (cs *NewConnSuite) TearDownTest(c *gc.C) {
55
57
cs.ToolsFixture.TearDownTest(c)
56
cs.FakeJujuHomeSuite.TearDownTest(c)
58
cs.LoggingSuite.TearDownTest(c)
59
61
func assertClose(c *gc.C, closer io.Closer) {
92
94
c.Assert(err, gc.IsNil)
95
func (s *NewConnSuite) TestConnMultipleCloseOk(c *gc.C) {
96
coretesting.MakeSampleJujuHome(c)
97
func (*NewConnSuite) TestConnMultipleCloseOk(c *gc.C) {
98
defer coretesting.MakeSampleHome(c).Restore()
97
99
bootstrapEnv(c, "", defaultConfigStore(c))
98
100
// Error return from here is tested in TestNewConnFromNameNotSetGetsDefault.
99
101
conn, err := juju.NewConnFromName("")
103
105
assertClose(c, conn)
106
func (s *NewConnSuite) TestNewConnFromNameNotSetGetsDefault(c *gc.C) {
107
coretesting.MakeSampleJujuHome(c)
108
func (*NewConnSuite) TestNewConnFromNameNotSetGetsDefault(c *gc.C) {
109
defer coretesting.MakeSampleHome(c).Restore()
108
110
bootstrapEnv(c, "", defaultConfigStore(c))
109
111
conn, err := juju.NewConnFromName("")
110
112
c.Assert(err, gc.IsNil)
112
114
c.Assert(conn.Environ.Name(), gc.Equals, coretesting.SampleEnvName)
115
func (s *NewConnSuite) TestNewConnFromNameNotDefault(c *gc.C) {
116
coretesting.WriteEnvironments(c, coretesting.MultipleEnvConfig)
117
func (*NewConnSuite) TestNewConnFromNameNotDefault(c *gc.C) {
118
defer coretesting.MakeMultipleEnvHome(c).Restore()
117
119
// The default environment is "erewhemos", so make sure we get what we ask for.
118
120
const envName = "erewhemos-2"
119
121
bootstrapEnv(c, envName, defaultConfigStore(c))
261
263
var _ = gc.Suite(&ConnSuite{})
263
265
func (s *ConnSuite) SetUpTest(c *gc.C) {
264
s.BaseSuite.SetUpTest(c)
266
s.LoggingSuite.SetUpTest(c)
265
267
s.MgoSuite.SetUpTest(c)
266
268
s.ToolsFixture.SetUpTest(c)
267
269
cfg, err := config.New(config.NoDefaults, dummy.SampleConfig())
291
293
s.ToolsFixture.TearDownTest(c)
292
294
s.MgoSuite.TearDownTest(c)
293
s.BaseSuite.TearDownTest(c)
295
s.LoggingSuite.TearDownTest(c)
296
298
func (s *ConnSuite) SetUpSuite(c *gc.C) {
297
s.BaseSuite.SetUpSuite(c)
299
s.LoggingSuite.SetUpSuite(c)
298
300
s.MgoSuite.SetUpSuite(c)
301
303
func (s *ConnSuite) TearDownSuite(c *gc.C) {
302
s.BaseSuite.TearDownSuite(c)
304
s.LoggingSuite.TearDownSuite(c)
303
305
s.MgoSuite.TearDownSuite(c)
676
678
c.Assert(unseenIds, gc.DeepEquals, set.NewStrings())
681
type InitJujuHomeSuite struct {
682
testbase.LoggingSuite
684
originalJujuHome string
687
var _ = gc.Suite(&InitJujuHomeSuite{})
689
func (s *InitJujuHomeSuite) SetUpTest(c *gc.C) {
690
s.LoggingSuite.SetUpTest(c)
691
s.originalHome = osenv.Home()
692
s.originalJujuHome = os.Getenv("JUJU_HOME")
695
func (s *InitJujuHomeSuite) TearDownTest(c *gc.C) {
696
osenv.SetHome(s.originalHome)
697
os.Setenv("JUJU_HOME", s.originalJujuHome)
698
s.LoggingSuite.TearDownTest(c)
701
func (s *InitJujuHomeSuite) TestJujuHome(c *gc.C) {
702
jujuHome := c.MkDir()
703
os.Setenv("JUJU_HOME", jujuHome)
704
err := juju.InitJujuHome()
705
c.Assert(err, gc.IsNil)
706
c.Assert(osenv.JujuHome(), gc.Equals, jujuHome)
709
func (s *InitJujuHomeSuite) TestHome(c *gc.C) {
711
os.Setenv("JUJU_HOME", "")
712
osenv.SetHome(osHome)
713
err := juju.InitJujuHome()
714
c.Assert(err, gc.IsNil)
715
c.Assert(osenv.JujuHome(), gc.Equals, filepath.Join(osHome, ".juju"))
718
func (s *InitJujuHomeSuite) TestError(c *gc.C) {
719
os.Setenv("JUJU_HOME", "")
721
err := juju.InitJujuHome()
722
c.Assert(err, gc.ErrorMatches, "cannot determine juju home.*")
725
func (s *InitJujuHomeSuite) TestCacheDir(c *gc.C) {
726
jujuHome := c.MkDir()
727
os.Setenv("JUJU_HOME", jujuHome)
728
c.Assert(charm.CacheDir, gc.Equals, "")
729
err := juju.InitJujuHome()
730
c.Assert(err, gc.IsNil)
731
c.Assert(charm.CacheDir, gc.Equals, filepath.Join(jujuHome, "charmcache"))