1
// Copyright 2016 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
8
jc "github.com/juju/testing/checkers"
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"
17
type UnsetDefaultsSuite struct {
21
var _ = gc.Suite(&UnsetDefaultsSuite{})
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...)
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)
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)
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"},
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)
59
c.Check(c.GetTestLog(), jc.Contains, "TestBlockedError")