LEFT | RIGHT |
1 package cmd_test | 1 package cmd_test |
2 | 2 |
3 import ( | 3 import ( |
4 "bytes" | 4 "bytes" |
5 "errors" | 5 "errors" |
6 "io" | 6 "io" |
7 "io/ioutil" | 7 "io/ioutil" |
8 "launchpad.net/gnuflag" | 8 "launchpad.net/gnuflag" |
9 . "launchpad.net/gocheck" | 9 . "launchpad.net/gocheck" |
10 cmd "launchpad.net/juju/go/cmd" | 10 cmd "launchpad.net/juju/go/cmd" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 cmd-doc | 62 cmd-doc |
63 ` | 63 ` |
64 | 64 |
65 type ContextSuite struct{} | 65 type ContextSuite struct{} |
66 | 66 |
67 func AssertMainOutput(c *C, com cmd.Command, usage string) { | 67 func AssertMainOutput(c *C, com cmd.Command, usage string) { |
68 ctx := dummyContext(c) | 68 ctx := dummyContext(c) |
69 result := cmd.Main(com, ctx, []string{"--unknown"}) | 69 result := cmd.Main(com, ctx, []string{"--unknown"}) |
70 c.Assert(result, Equals, 2) | 70 c.Assert(result, Equals, 2) |
71 c.Assert(str(ctx.Stdout), Equals, "") | 71 c.Assert(str(ctx.Stdout), Equals, "") |
72 » expected := "ERROR: flag provided but not defined: --unknown\n" + usage | 72 » expected := usage + "error: flag provided but not defined: --unknown\n" |
73 c.Assert(str(ctx.Stderr), Equals, expected) | 73 c.Assert(str(ctx.Stderr), Equals, expected) |
74 } | 74 } |
75 | 75 |
76 func (s *CommandSuite) TestMainOutput(c *C) { | 76 func (s *CommandSuite) TestMainOutput(c *C) { |
77 AssertMainOutput(c, &CtxCommand{}, fullUsage) | 77 AssertMainOutput(c, &CtxCommand{}, fullUsage) |
78 AssertMainOutput(c, &CtxCommand{Minimal: true}, minUsage) | 78 AssertMainOutput(c, &CtxCommand{Minimal: true}, minUsage) |
79 } | 79 } |
80 | 80 |
81 func (s *CommandSuite) TestMainBadRun(c *C) { | 81 func (s *CommandSuite) TestMainBadRun(c *C) { |
82 ctx := dummyContext(c) | 82 ctx := dummyContext(c) |
83 result := cmd.Main(&CtxCommand{}, ctx, []string{"--opt", "error"}) | 83 result := cmd.Main(&CtxCommand{}, ctx, []string{"--opt", "error"}) |
84 c.Assert(result, Equals, 1) | 84 c.Assert(result, Equals, 1) |
85 c.Assert(str(ctx.Stdout), Equals, "") | 85 c.Assert(str(ctx.Stdout), Equals, "") |
86 » c.Assert(str(ctx.Stderr), Equals, "ERROR: oh noes!\n") | 86 » c.Assert(str(ctx.Stderr), Equals, "error: oh noes!\n") |
87 } | 87 } |
88 | 88 |
89 func (s *CommandSuite) TestMainSuccess(c *C) { | 89 func (s *CommandSuite) TestMainSuccess(c *C) { |
90 ctx := dummyContext(c) | 90 ctx := dummyContext(c) |
91 result := cmd.Main(&CtxCommand{}, ctx, []string{"--opt", "success!"}) | 91 result := cmd.Main(&CtxCommand{}, ctx, []string{"--opt", "success!"}) |
92 c.Assert(result, Equals, 0) | 92 c.Assert(result, Equals, 0) |
93 c.Assert(str(ctx.Stdout), Equals, "hello stdout: success!") | 93 c.Assert(str(ctx.Stdout), Equals, "hello stdout: success!") |
94 c.Assert(str(ctx.Stderr), Equals, "hello stderr: success!") | 94 c.Assert(str(ctx.Stderr), Equals, "hello stderr: success!") |
95 } | 95 } |
96 | 96 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 func (s *CommandSuite) TestRelativeLogFile(c *C) { | 142 func (s *CommandSuite) TestRelativeLogFile(c *C) { |
143 defer saveLog()() | 143 defer saveLog()() |
144 ctx := dummyContext(c) | 144 ctx := dummyContext(c) |
145 err := ctx.InitLog(false, false, "logfile") | 145 err := ctx.InitLog(false, false, "logfile") |
146 c.Assert(err, IsNil) | 146 c.Assert(err, IsNil) |
147 log.Printf("hello log") | 147 log.Printf("hello log") |
148 raw, err := ioutil.ReadFile(filepath.Join(ctx.Dir, "logfile")) | 148 raw, err := ioutil.ReadFile(filepath.Join(ctx.Dir, "logfile")) |
149 c.Assert(err, IsNil) | 149 c.Assert(err, IsNil) |
150 c.Assert(string(raw), Matches, ".* JUJU hello log\n") | 150 c.Assert(string(raw), Matches, ".* JUJU hello log\n") |
151 } | 151 } |
LEFT | RIGHT |