update cli tests

This commit is contained in:
Federico Kunze 2018-11-20 14:13:05 +01:00
parent 8a95de4086
commit ee4c51bb36
2 changed files with 33 additions and 6 deletions

View File

@ -35,16 +35,15 @@ passed to the --tags option. To match any transaction, use the --any option.
For example: For example:
$ gaiacli tendermint txs --tag test1,test2 $ gaiacli query txs --tag test1,test2
will match any transaction tagged with both test1,test2. To match a transaction tagged with either will match any transaction tagged with both test1,test2. To match a transaction tagged with either
test1 or test2, use: test1 or test2, use:
$ gaiacli tendermint txs --tag test1,test2 --any $ gaiacli query txs --tag test1,test2 --any
`), `),
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
tags := viper.GetStringSlice(flagTags) tags := viper.GetStringSlice(flagTags)
cliCtx := context.NewCLIContext().WithCodec(cdc) cliCtx := context.NewCLIContext().WithCodec(cdc)
txs, err := searchTxs(cliCtx, cdc, tags) txs, err := searchTxs(cliCtx, cdc, tags)
@ -140,13 +139,14 @@ func FormatTxResults(cdc *codec.Codec, res []*ctypes.ResultTx) ([]Info, error) {
func SearchTxRequestHandlerFn(cliCtx context.CLIContext, cdc *codec.Codec) http.HandlerFunc { func SearchTxRequestHandlerFn(cliCtx context.CLIContext, cdc *codec.Codec) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
var tags []string var tags []string
var txs []Info
err := r.ParseForm() err := r.ParseForm()
if err != nil { if err != nil {
utils.WriteErrorResponse(w, http.StatusBadRequest, sdk.AppendMsgToErr("could not parse query parameters", err.Error())) utils.WriteErrorResponse(w, http.StatusBadRequest, sdk.AppendMsgToErr("could not parse query parameters", err.Error()))
return return
} }
if len(r.Form) == 0 { if len(r.Form) == 0 {
utils.PostProcessResponse(w, cdc, "[]", cliCtx.Indent) utils.PostProcessResponse(w, cdc, txs, cliCtx.Indent)
return return
} }
@ -166,13 +166,23 @@ func SearchTxRequestHandlerFn(cliCtx context.CLIContext, cdc *codec.Codec) http.
} }
key = strings.TrimRight(key, "_bech32") key = strings.TrimRight(key, "_bech32")
if prefix == sdk.Bech32PrefixAccAddr {
value = sdk.AccAddress(bz).String() value = sdk.AccAddress(bz).String()
} else if prefix == sdk.Bech32PrefixValAddr {
value = sdk.ValAddress(bz).String()
} else {
utils.WriteErrorResponse(w, http.StatusBadRequest,
sdk.ErrInvalidAddress(fmt.Sprintf("invalid bech32 prefix '%s'", prefix)).Error(),
)
return
}
} }
tag := fmt.Sprintf("%s='%s'", key, value) tag := fmt.Sprintf("%s='%s'", key, value)
tags = append(tags, tag) tags = append(tags, tag)
} }
txs, err := searchTxs(cliCtx, cdc, tags) txs, err = searchTxs(cliCtx, cdc, tags)
if err != nil { if err != nil {
utils.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) utils.WriteErrorResponse(w, http.StatusInternalServerError, err.Error())
return return

View File

@ -21,6 +21,7 @@ import (
"github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/keys" "github.com/cosmos/cosmos-sdk/client/keys"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/cosmos/cosmos-sdk/cmd/gaia/app" "github.com/cosmos/cosmos-sdk/cmd/gaia/app"
"github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server"
@ -354,6 +355,10 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
executeWrite(t, spStr, app.DefaultKeyPass) executeWrite(t, spStr, app.DefaultKeyPass)
tests.WaitForNextNBlocksTM(2, port) tests.WaitForNextNBlocksTM(2, port)
// Test query txs
// txs := executeGetTxs(t, fmt.Sprintf("gaiacli query txs --tag action=submit-proposal,proposer=%s %v", fooAddr, flags))
// require.Len(t, txs, 1)
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags)) fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", fooAddr, flags))
require.Equal(t, int64(45), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64()) require.Equal(t, int64(45), fooAcc.GetCoins().AmountOf(stakeTypes.DefaultBondDenom).Int64())
@ -728,6 +733,18 @@ func executeGetAccount(t *testing.T, cmdStr string) auth.BaseAccount {
return acc return acc
} }
//___________________________________________________________________________________
// txs
func executeGetTxs(t *testing.T, cmdStr string) []tx.Info {
out, _ := tests.ExecuteT(t, cmdStr, "")
var txs []tx.Info
cdc := app.MakeCodec()
err := cdc.UnmarshalJSON([]byte(out), &txs)
require.NoError(t, err, "out %v\n, err %v", out, err)
return txs
}
//___________________________________________________________________________________ //___________________________________________________________________________________
// stake // stake