func (s *cmdControllerSuite) run(c *gc.C, args ...string) *cmd.Context { context := testing.Context(c) command := commands.NewJujuCommand(context) c.Assert(testing.InitCommand(command, args), jc.ErrorIsNil) c.Assert(command.Run(context), jc.ErrorIsNil) return context }
func (s *UserSuite) RunUserCommand(c *gc.C, args ...string) (*cmd.Context, error) { context := testing.Context(c) jujuCmd := commands.NewJujuCommand(context) err := testing.InitCommand(jujuCmd, args) c.Assert(err, jc.ErrorIsNil) err = jujuCmd.Run(context) return context, err }
func (s *cmdModelSuite) run(c *gc.C, args ...string) *cmd.Context { context := testing.Context(c) jujuCmd := commands.NewJujuCommand(context) err := testing.InitCommand(jujuCmd, args) c.Assert(err, jc.ErrorIsNil) err = jujuCmd.Run(context) c.Assert(err, jc.ErrorIsNil) return context }
func runCommand(c *gc.C, args ...string) (*cmd.Context, error) { // Writers need to be reset, because // they are set globally in the juju/cmd package and will // return an error if we attempt to run two commands in the // same test. loggo.ResetWriters() ctx := coretesting.Context(c) command := jujucmd.NewJujuCommand(ctx) return coretesting.RunCommand(c, command, args...) }
func (s *cmdLoginSuite) run(c *gc.C, stdin io.Reader, args ...string) *cmd.Context { context := testing.Context(c) if stdin != nil { context.Stdin = stdin } command := commands.NewJujuCommand(context) c.Assert(testing.InitCommand(command, args), jc.ErrorIsNil) c.Assert(command.Run(context), jc.ErrorIsNil) loggo.RemoveWriter("warning") // remove logger added by main command return context }
func (s *UserSuite) RunUserCommand(c *gc.C, stdin string, args ...string) (*cmd.Context, error) { context := testing.Context(c) if stdin != "" { context.Stdin = strings.NewReader(stdin) } jujuCmd := commands.NewJujuCommand(context) err := testing.InitCommand(jujuCmd, args) c.Assert(err, jc.ErrorIsNil) err = jujuCmd.Run(context) return context, err }
func runJujuCommand(c *gc.C, args ...string) (*cmd.Context, error) { // NOTE (alesstimec): Writers need to be reset, because // they are set globally in the juju/cmd package and will // return an error if we attempt to run two commands in the // same test. loggo.RemoveWriter("warning") ctx, err := cmd.DefaultContext() c.Assert(err, jc.ErrorIsNil) command := jujucmd.NewJujuCommand(ctx) return testing.RunCommand(c, command, args...) }
// run runs a juju command with the given arguments. // If stdio is given, it will be used for all input and output // to the command; otherwise testing.Context will be used. // // It returns the context used to run the command. func run(c *gc.C, stdio io.ReadWriter, args ...string) *cmd.Context { var context *cmd.Context if stdio != nil { context = &cmd.Context{ Dir: c.MkDir(), Stdin: stdio, Stdout: stdio, Stderr: stdio, } } else { context = testing.Context(c) } command := commands.NewJujuCommand(context) c.Assert(testing.InitCommand(command, args), jc.ErrorIsNil) err := command.Run(context) c.Assert(err, jc.ErrorIsNil, gc.Commentf("stderr: %q", context.Stderr)) loggo.RemoveWriter("warning") // remove logger added by main command return context }