本文整理汇总了Golang中github.com/juju/cmd/cmdtesting.Stderr函数的典型用法代码示例。如果您正苦于以下问题:Golang Stderr函数的具体用法?Golang Stderr怎么用?Golang Stderr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Stderr函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestStderr
func (s *LogSuite) TestStderr(c *gc.C) {
l := &cmd.Log{ShowLog: true, Config: "<root>=INFO"}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
logger.Infof("hello")
c.Assert(cmdtesting.Stderr(ctx), gc.Matches, `^.* INFO .* hello\n`)
}
示例2: TestShowLogSetsLogLevel
func (s *LogSuite) TestShowLogSetsLogLevel(c *gc.C) {
l := &cmd.Log{ShowLog: true}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
c.Assert(loggo.GetLogger("").LogLevel(), gc.Equals, loggo.INFO)
c.Assert(cmdtesting.Stderr(ctx), gc.Equals, "")
c.Assert(cmdtesting.Stdout(ctx), gc.Equals, "")
}
示例3: TestRegisterDeprecated
func (s *SuperCommandSuite) TestRegisterDeprecated(c *gc.C) {
jc := cmd.NewSuperCommand(cmd.SuperCommandParams{
Name: "jujutest",
})
// Test that calling with a nil command will not panic
jc.RegisterDeprecated(nil, nil)
jc.RegisterDeprecated(&simpleAlias{simple{name: "test-non-dep"}}, nil)
jc.RegisterDeprecated(&simpleAlias{simple{name: "test-dep"}}, deprecate{replacement: "test-dep-new"})
jc.RegisterDeprecated(&simpleAlias{simple{name: "test-ob"}}, deprecate{obsolete: true})
badCall := func() {
jc.RegisterDeprecated(&simpleAlias{simple{name: "test-dep"}}, deprecate{replacement: "test-dep-new"})
}
c.Assert(badCall, gc.PanicMatches, `command already registered: "test-dep"`)
for _, test := range []struct {
args []string
stdout string
stderr string
code int
}{
{
args: []string{"test-non-dep", "arg"},
stdout: "test-non-dep arg\n",
}, {
args: []string{"test-non-dep-alias", "arg"},
stdout: "test-non-dep arg\n",
}, {
args: []string{"test-dep", "arg"},
stdout: "test-dep arg\n",
stderr: "WARNING: \"test-dep\" is deprecated, please use \"test-dep-new\"\n",
}, {
args: []string{"test-dep-alias", "arg"},
stdout: "test-dep arg\n",
stderr: "WARNING: \"test-dep-alias\" is deprecated, please use \"test-dep-new\"\n",
}, {
args: []string{"test-ob", "arg"},
stderr: "error: unrecognized command: jujutest test-ob\n",
code: 2,
}, {
args: []string{"test-ob-alias", "arg"},
stderr: "error: unrecognized command: jujutest test-ob-alias\n",
code: 2,
},
} {
ctx := cmdtesting.Context(c)
code := cmd.Main(jc, ctx, test.args)
c.Check(code, gc.Equals, test.code)
c.Check(cmdtesting.Stderr(ctx), gc.Equals, test.stderr)
c.Check(cmdtesting.Stdout(ctx), gc.Equals, test.stdout)
}
}
示例4: TestOutputDebugForcesQuiet
func (s *LogSuite) TestOutputDebugForcesQuiet(c *gc.C) {
l := &cmd.Log{Verbose: true, Debug: true}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
ctx.Infof("Writing info output")
ctx.Verbosef("Writing verbose output")
c.Assert(cmdtesting.Stderr(ctx), gc.Matches, `^.*INFO .* Writing info output\n.*INFO .*Writing verbose output\n.*`)
}
示例5: TestOutputQuiet
func (s *LogSuite) TestOutputQuiet(c *gc.C) {
l := &cmd.Log{Quiet: true}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
ctx.Infof("Writing info output")
ctx.Verbosef("Writing verbose output")
c.Assert(cmdtesting.Stderr(ctx), gc.Equals, "")
}
示例6: TestMissingCallbackErrors
func (s *SuperCommandSuite) TestMissingCallbackErrors(c *gc.C) {
callback := func(ctx *cmd.Context, subcommand string, args []string) error {
return fmt.Errorf("command not found %q", subcommand)
}
ctx := cmdtesting.Context(c)
code := cmd.Main(NewSuperWithCallback(callback), ctx, []string{"foo"})
c.Assert(code, gc.Equals, 1)
c.Assert(cmdtesting.Stdout(ctx), gc.Equals, "")
c.Assert(cmdtesting.Stderr(ctx), gc.Equals, "ERROR command not found \"foo\"\n")
}
示例7: TestErrorAndWarningLoggingToStderr
func (s *LogSuite) TestErrorAndWarningLoggingToStderr(c *gc.C) {
// Error and warning go to stderr even with ShowLog=false
l := &cmd.Log{Config: "<root>=INFO", ShowLog: false}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
logger.Warningf("a warning")
logger.Errorf("an error")
logger.Infof("an info")
c.Assert(cmdtesting.Stderr(ctx), gc.Matches, `^.*WARNING a warning\n.*ERROR an error\n.*`)
c.Assert(cmdtesting.Stdout(ctx), gc.Equals, "")
}
示例8: TestLoggingToFileAndStderr
func (s *LogSuite) TestLoggingToFileAndStderr(c *gc.C) {
l := &cmd.Log{Path: "foo.log", Config: "<root>=INFO", ShowLog: true}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
logger.Infof("hello")
content, err := ioutil.ReadFile(filepath.Join(ctx.Dir, "foo.log"))
c.Assert(err, gc.IsNil)
c.Assert(string(content), gc.Matches, `^.* INFO .* hello\n`)
c.Assert(cmdtesting.Stderr(ctx), gc.Matches, `^.* INFO .* hello\n`)
c.Assert(cmdtesting.Stdout(ctx), gc.Equals, "")
}
示例9: TestAbsPathLog
func (s *LogSuite) TestAbsPathLog(c *gc.C) {
path := filepath.Join(c.MkDir(), "foo.log")
l := &cmd.Log{Path: path, Config: "<root>=INFO"}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
logger.Infof("hello")
c.Assert(cmdtesting.Stderr(ctx), gc.Equals, "")
content, err := ioutil.ReadFile(path)
c.Assert(err, gc.IsNil)
c.Assert(string(content), gc.Matches, `^.* INFO .* hello\n`)
}
示例10: TestMissingCallbackContextWiredIn
func (s *SuperCommandSuite) TestMissingCallbackContextWiredIn(c *gc.C) {
callback := func(ctx *cmd.Context, subcommand string, args []string) error {
fmt.Fprintf(ctx.Stdout, "this is std out")
fmt.Fprintf(ctx.Stderr, "this is std err")
return nil
}
ctx := cmdtesting.Context(c)
code := cmd.Main(NewSuperWithCallback(callback), ctx, []string{"foo", "bar", "baz", "--debug"})
c.Assert(code, gc.Equals, 0)
c.Assert(cmdtesting.Stdout(ctx), gc.Equals, "this is std out")
c.Assert(cmdtesting.Stderr(ctx), gc.Equals, "this is std err")
}
示例11: TestOutputDefaultLogsVerbose
func (s *LogSuite) TestOutputDefaultLogsVerbose(c *gc.C) {
l := &cmd.Log{Path: "foo.log", Config: "<root>=INFO"}
ctx := cmdtesting.Context(c)
err := l.Start(ctx)
c.Assert(err, gc.IsNil)
ctx.Infof("Writing info output")
ctx.Verbosef("Writing verbose output")
content, err := ioutil.ReadFile(filepath.Join(ctx.Dir, "foo.log"))
c.Assert(err, gc.IsNil)
c.Assert(cmdtesting.Stderr(ctx), gc.Equals, "Writing info output\n")
c.Assert(string(content), gc.Matches, `^.*INFO .*Writing verbose output\n.*`)
}
示例12: TestRegisterAlias
func (s *SuperCommandSuite) TestRegisterAlias(c *gc.C) {
jc := cmd.NewSuperCommand(cmd.SuperCommandParams{
Name: "jujutest",
})
jc.Register(&simple{name: "test"})
jc.RegisterAlias("foo", "test", nil)
jc.RegisterAlias("bar", "test", deprecate{replacement: "test"})
jc.RegisterAlias("baz", "test", deprecate{obsolete: true})
c.Assert(
func() { jc.RegisterAlias("omg", "unknown", nil) },
gc.PanicMatches, `"unknown" not found when registering alias`)
info := jc.Info()
// NOTE: deprecated `bar` not shown in commands.
c.Assert(info.Doc, gc.Equals, `commands:
foo - alias for 'test'
help - show help on a command or other topic
test - to be simple`)
for _, test := range []struct {
name string
stdout string
stderr string
code int
}{
{
name: "test",
stdout: "test arg\n",
}, {
name: "foo",
stdout: "test arg\n",
}, {
name: "bar",
stdout: "test arg\n",
stderr: "WARNING: \"bar\" is deprecated, please use \"test\"\n",
}, {
name: "baz",
stderr: "error: unrecognized command: jujutest baz\n",
code: 2,
},
} {
ctx := cmdtesting.Context(c)
code := cmd.Main(jc, ctx, []string{test.name, "arg"})
c.Check(code, gc.Equals, test.code)
c.Check(cmdtesting.Stdout(ctx), gc.Equals, test.stdout)
c.Check(cmdtesting.Stderr(ctx), gc.Equals, test.stderr)
}
}
示例13: TestRegisterSuperAlias
func (s *SuperCommandSuite) TestRegisterSuperAlias(c *gc.C) {
jc := cmd.NewSuperCommand(cmd.SuperCommandParams{
Name: "jujutest",
})
jc.Register(&simple{name: "test"})
sub := cmd.NewSuperCommand(cmd.SuperCommandParams{
Name: "bar",
UsagePrefix: "jujutest",
Purpose: "bar functions",
})
jc.Register(sub)
sub.Register(&simple{name: "foo"})
c.Assert(
func() { jc.RegisterSuperAlias("bar-foo", "unknown", "foo", nil) },
gc.PanicMatches, `"unknown" not found when registering alias`)
c.Assert(
func() { jc.RegisterSuperAlias("bar-foo", "test", "foo", nil) },
gc.PanicMatches, `"test" is not a SuperCommand`)
c.Assert(
func() { jc.RegisterSuperAlias("bar-foo", "bar", "unknown", nil) },
gc.PanicMatches, `"unknown" not found as a command in "bar"`)
jc.RegisterSuperAlias("bar-foo", "bar", "foo", nil)
jc.RegisterSuperAlias("bar-dep", "bar", "foo", deprecate{replacement: "bar foo"})
jc.RegisterSuperAlias("bar-ob", "bar", "foo", deprecate{obsolete: true})
info := jc.Info()
// NOTE: deprecated `bar` not shown in commands.
c.Assert(info.Doc, gc.Equals, `commands:
bar - bar functions
bar-foo - alias for 'bar foo'
help - show help on a command or other topic
test - to be simple`)
for _, test := range []struct {
args []string
stdout string
stderr string
code int
}{
{
args: []string{"bar", "foo", "arg"},
stdout: "foo arg\n",
}, {
args: []string{"bar-foo", "arg"},
stdout: "foo arg\n",
}, {
args: []string{"bar-dep", "arg"},
stdout: "foo arg\n",
stderr: "WARNING: \"bar-dep\" is deprecated, please use \"bar foo\"\n",
}, {
args: []string{"bar-ob", "arg"},
stderr: "error: unrecognized command: jujutest bar-ob\n",
code: 2,
},
} {
ctx := cmdtesting.Context(c)
code := cmd.Main(jc, ctx, test.args)
c.Check(code, gc.Equals, test.code)
c.Check(cmdtesting.Stdout(ctx), gc.Equals, test.stdout)
c.Check(cmdtesting.Stderr(ctx), gc.Equals, test.stderr)
}
}