~wwitzel3/juju-core/009-ha-rsyslog-api

« back to all changes in this revision

Viewing changes to environs/config_test.go

  • Committer: Wayne Witzel III
  • Date: 2014-05-22 13:23:37 UTC
  • mfrom: (2743.1.10 ha-rsyslog-api)
  • Revision ID: wayne.witzel@canonical.com-20140522132337-m9py79a81mjdm9su
merge mfoord

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
        "launchpad.net/juju-core/provider/dummy"
20
20
        _ "launchpad.net/juju-core/provider/manual"
21
21
        "launchpad.net/juju-core/testing"
22
 
        "launchpad.net/juju-core/testing/testbase"
23
22
)
24
23
 
25
24
type suite struct {
26
 
        testbase.LoggingSuite
 
25
        testing.FakeJujuHomeSuite
27
26
}
28
27
 
29
28
var _ = gc.Suite(&suite{})
30
29
 
31
30
func (s *suite) TearDownTest(c *gc.C) {
32
31
        dummy.Reset()
33
 
        s.LoggingSuite.TearDownTest(c)
 
32
        s.FakeJujuHomeSuite.TearDownTest(c)
34
33
}
35
34
 
36
35
var invalidConfigTests = []struct {
80
79
}
81
80
 
82
81
func (*suite) TestInvalidEnv(c *gc.C) {
83
 
        defer testing.MakeFakeHomeNoEnvironments(c, "only").Restore()
84
82
        for i, t := range invalidEnvTests {
85
83
                c.Logf("running test %v", i)
86
84
                es, err := environs.ReadEnvironsBytes([]byte(t.env))
97
95
        // However, we can only really trigger that when we have a deprecated
98
96
        // field. If support for the field is removed entirely, another
99
97
        // mechanism will need to be used
100
 
        defer testing.MakeFakeHomeNoEnvironments(c, "only").Restore()
101
98
        content := `
102
99
environments:
103
100
    valid:
107
104
        type: dummy
108
105
        state-server: false
109
106
        tools-url: aknowndeprecatedfield
 
107
        lxc-use-clone: true
110
108
`
111
109
        tw := &loggo.TestWriter{}
112
110
        // we only capture Warning or above
128
126
        // Only once we grab the deprecated one do we see any warnings
129
127
        _, err = envs.Config("deprecated")
130
128
        c.Check(err, gc.IsNil)
131
 
        c.Check(tw.Log, gc.HasLen, 1)
 
129
        c.Check(tw.Log, gc.HasLen, 2)
132
130
}
133
131
 
134
132
func (*suite) TestNoHomeBeforeConfig(c *gc.C) {
135
133
        // Test that we don't actually need HOME set until we call envs.Config()
136
 
        // Because of this, we intentionally do *not* call testing.MakeFakeHomeNoEnvironments()
 
134
        os.Setenv("HOME", "")
137
135
        content := `
138
136
environments:
139
137
    valid:
146
144
}
147
145
 
148
146
func (*suite) TestNoEnv(c *gc.C) {
149
 
        defer testing.MakeFakeHomeNoEnvironments(c).Restore()
 
147
        envPath := testing.HomePath(".juju", "environments.yaml")
 
148
        err := os.Remove(envPath)
 
149
        c.Assert(err, gc.IsNil)
150
150
        es, err := environs.ReadEnvirons("")
151
151
        c.Assert(es, gc.IsNil)
152
152
        c.Assert(err, jc.Satisfies, environs.IsNoEnv)
197
197
}
198
198
 
199
199
func (*suite) TestConfig(c *gc.C) {
200
 
        defer testing.MakeFakeHomeNoEnvironments(c, "only", "valid", "one", "two").Restore()
201
200
        for i, t := range configTests {
202
201
                c.Logf("running test %v", i)
203
202
                envs, err := environs.ReadEnvironsBytes([]byte(t.env))
207
206
}
208
207
 
209
208
func (*suite) TestDefaultConfigFile(c *gc.C) {
210
 
        defer testing.MakeEmptyFakeHome(c).Restore()
211
 
 
212
209
        env := `
213
210
environments:
214
211
    only:
228
225
        c.Assert(cfg.Name(), gc.Equals, "only")
229
226
}
230
227
 
231
 
func (*suite) TestConfigPerm(c *gc.C) {
232
 
        defer testing.MakeSampleHome(c).Restore()
 
228
func (s *suite) TestConfigPerm(c *gc.C) {
 
229
        testing.MakeSampleJujuHome(c)
233
230
 
234
231
        path := testing.HomePath(".juju")
235
232
        info, err := os.Lstat(path)
256
253
}
257
254
 
258
255
func (*suite) TestNamedConfigFile(c *gc.C) {
259
 
        defer testing.MakeFakeHomeNoEnvironments(c, "only").Restore()
260
256
 
261
257
        env := `
262
258
environments:
283
279
}
284
280
 
285
281
func (*suite) TestBootstrapConfig(c *gc.C) {
286
 
        defer testing.MakeFakeHomeNoEnvironments(c, "bladaam").Restore()
287
282
        attrs := dummySampleConfig().Merge(testing.Attrs{
288
283
                "agent-version": "1.2.3",
289
284
        })
410
405
}
411
406
 
412
407
func (s *ConfigDeprecationSuite) checkDeprecationWarning(c *gc.C, attrs testing.Attrs, expectedMsg string) {
413
 
        defer testing.MakeFakeHomeNoEnvironments(c, "only").Restore()
414
408
        content := `
415
409
environments:
416
410
    deprecated:
455
449
        expected := `Provider type \"null\" has been renamed to \"manual\"\.Please update your environment configuration\.`
456
450
        s.checkDeprecationWarning(c, attrs, expected)
457
451
}
 
452
 
 
453
func (s *ConfigDeprecationSuite) TestDeprecatedLxcUseCloneWarning(c *gc.C) {
 
454
        attrs := testing.Attrs{"lxc-use-clone": true}
 
455
        expected := `Config attribute \"lxc-use-clone\" has been renamed to \"lxc-clone\".Please update your environment configuration\.`
 
456
        s.checkDeprecationWarning(c, attrs, expected)
 
457
}