forked from forgejo/forgejo
[CLI] implement forgejo-cli actions
(cherry picked from commit08be2b226e
) (cherry picked from commitb6cfa88c6e
) (cherry picked from commit59704200de
) [CLI] implement forgejo-cli actions generate-secret (cherry picked from commit6f7905c8ec
) (cherry picked from commite085d6d273
) [CLI] implement forgejo-cli actions generate-secret (squash) NoInit (cherry picked from commit962c944eb2
) [CLI] implement forgejo-cli actions register (cherry picked from commit2f95143000
) (cherry picked from commit42f2f8731e
) [CLI] implement forgejo-cli actions register (squash) no private Do not go through the private API, directly modify the database (cherry picked from commit1ba7c0d39d
) [CLI] implement forgejo-cli actions (cherry picked from commit6f7905c8ec
) (cherry picked from commite085d6d273
) [CLI] implement forgejo-cli actions generate-secret (squash) NoInit (cherry picked from commit962c944eb2
) (cherry picked from commit4c121ef022
) Conflicts: cmd/forgejo/actions.go tests/integration/cmd_forgejo_actions_test.go
This commit is contained in:
parent
b6c1bcc008
commit
36997a48e3
12 changed files with 630 additions and 25 deletions
|
@ -5,35 +5,32 @@ package integration
|
|||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"flag"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/cmd/forgejo"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
func cmdForgejoCaptureOutput(t *testing.T, args []string, stdin ...string) (string, error) {
|
||||
r, w, err := os.Pipe()
|
||||
assert.NoError(t, err)
|
||||
set := flag.NewFlagSet("forgejo-cli", 0)
|
||||
assert.NoError(t, set.Parse(args))
|
||||
cliContext := cli.NewContext(&cli.App{Writer: w, ErrWriter: w}, set, nil)
|
||||
buf := new(bytes.Buffer)
|
||||
|
||||
app := cli.NewApp()
|
||||
app.Writer = buf
|
||||
app.ErrWriter = buf
|
||||
ctx := context.Background()
|
||||
ctx = forgejo.ContextSetNoInit(ctx, true)
|
||||
ctx = forgejo.ContextSetNoExit(ctx, true)
|
||||
ctx = forgejo.ContextSetStdout(ctx, w)
|
||||
ctx = forgejo.ContextSetStderr(ctx, w)
|
||||
ctx = forgejo.ContextSetStdout(ctx, buf)
|
||||
ctx = forgejo.ContextSetStderr(ctx, buf)
|
||||
if len(stdin) > 0 {
|
||||
ctx = forgejo.ContextSetStdin(ctx, strings.NewReader(strings.Join(stdin, "")))
|
||||
}
|
||||
err = forgejo.CmdForgejo(ctx).Run(cliContext)
|
||||
w.Close()
|
||||
var buf bytes.Buffer
|
||||
io.Copy(&buf, r)
|
||||
app.Commands = []*cli.Command{
|
||||
forgejo.CmdForgejo(ctx),
|
||||
}
|
||||
err := app.Run(args)
|
||||
|
||||
return buf.String(), err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue