~nskaggs/+junk/xenial-test

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/cmd/juju/model/unsetdefaults_test.go

  • Committer: Nicholas Skaggs
  • Date: 2016-10-24 20:56:05 UTC
  • Revision ID: nicholas.skaggs@canonical.com-20161024205605-z8lta0uvuhtxwzwl
Initi with beta15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright 2016 Canonical Ltd.
 
2
// Licensed under the AGPLv3, see LICENCE file for details.
 
3
 
 
4
package model_test
 
5
 
 
6
import (
 
7
        "github.com/juju/cmd"
 
8
        jc "github.com/juju/testing/checkers"
 
9
        gc "gopkg.in/check.v1"
 
10
 
 
11
        "github.com/juju/juju/apiserver/common"
 
12
        "github.com/juju/juju/cmd/juju/model"
 
13
        "github.com/juju/juju/environs/config"
 
14
        "github.com/juju/juju/testing"
 
15
)
 
16
 
 
17
type UnsetDefaultsSuite struct {
 
18
        fakeEnvSuite
 
19
}
 
20
 
 
21
var _ = gc.Suite(&UnsetDefaultsSuite{})
 
22
 
 
23
func (s *UnsetDefaultsSuite) run(c *gc.C, args ...string) (*cmd.Context, error) {
 
24
        command := model.NewUnsetDefaultsCommandForTest(s.fake)
 
25
        return testing.RunCommand(c, command, args...)
 
26
}
 
27
 
 
28
func (s *UnsetDefaultsSuite) TestInitArgCount(c *gc.C) {
 
29
        unsetCmd := model.NewUnsetDefaultsCommandForTest(s.fake)
 
30
        // Only empty is a problem.
 
31
        err := testing.InitCommand(unsetCmd, []string{})
 
32
        c.Assert(err, gc.ErrorMatches, "no keys specified")
 
33
        // Everything else is fine.
 
34
        err = testing.InitCommand(unsetCmd, []string{"something", "weird"})
 
35
        c.Assert(err, jc.ErrorIsNil)
 
36
}
 
37
 
 
38
func (s *UnsetDefaultsSuite) TestInitUnknownValue(c *gc.C) {
 
39
        unsetCmd := model.NewUnsetDefaultsCommandForTest(s.fake)
 
40
        err := testing.InitCommand(unsetCmd, []string{"attr", "weird"})
 
41
        c.Assert(err, jc.ErrorIsNil)
 
42
        expected := `key "weird" is not defined in the known model configuration: possible misspelling`
 
43
        c.Check(c.GetTestLog(), jc.Contains, expected)
 
44
}
 
45
 
 
46
func (s *UnsetDefaultsSuite) TestUnset(c *gc.C) {
 
47
        _, err := s.run(c, "attr", "unknown")
 
48
        c.Assert(err, jc.ErrorIsNil)
 
49
        c.Assert(s.fake.defaults, jc.DeepEquals, config.ConfigValues{
 
50
                "attr2": {Value: "bar", Source: "controller"},
 
51
        })
 
52
}
 
53
 
 
54
func (s *UnsetDefaultsSuite) TestBlockedError(c *gc.C) {
 
55
        s.fake.err = common.OperationBlockedError("TestBlockedError")
 
56
        _, err := s.run(c, "attr")
 
57
        c.Assert(err, gc.Equals, cmd.ErrSilent)
 
58
        // msg is logged
 
59
        c.Check(c.GetTestLog(), jc.Contains, "TestBlockedError")
 
60
}