Fix gobash CLI testing
This commit is contained in:
parent
cade5f552c
commit
0ab5d7639b
|
@ -3,20 +3,20 @@ package client
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/types"
|
"github.com/cosmos/cosmos-sdk/types"
|
||||||
"github.com/mitchellh/go-homedir"
|
"github.com/mitchellh/go-homedir"
|
||||||
"github.com/pelletier/go-toml"
|
"github.com/pelletier/go-toml"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"path"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type cliConfig struct {
|
type cliConfig struct {
|
||||||
Home string `toml:"home"`
|
Home string `toml:"home"`
|
||||||
ChainID string `toml:"chain_id"`
|
ChainID string `toml:"chain_id"`
|
||||||
TrustNode bool `toml:"trust_node"`
|
TrustNode bool `toml:"trust_node"`
|
||||||
Encoding string `toml:"encoding"`
|
|
||||||
Output string `toml:"output"`
|
Output string `toml:"output"`
|
||||||
Node string `toml:"node"`
|
Node string `toml:"node"`
|
||||||
Trace bool `toml:"trace"`
|
Trace bool `toml:"trace"`
|
||||||
|
@ -41,23 +41,25 @@ func runConfigCmd(cmd *cobra.Command, args []string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
stdin := BufferStdin()
|
stdin := BufferStdin()
|
||||||
|
|
||||||
gaiaCLIHome, err := handleGaiaCLIHome(home, stdin)
|
gaiaCLIHome, err := handleGaiaCLIHome(home, stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
node, err := handleNode(stdin)
|
node, err := handleNode(stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
trustNode, err := handleTrustNode(stdin)
|
trustNode, err := handleTrustNode(stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
encoding := "btc"
|
// var chainID string
|
||||||
output := "text"
|
chainID, err := types.DefaultChainID()
|
||||||
var chainID string
|
|
||||||
chainID, err = types.DefaultChainID()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Couldn't populate ChainID, so using an empty one.")
|
fmt.Println("Couldn't populate ChainID, so using an empty one.")
|
||||||
}
|
}
|
||||||
|
@ -66,8 +68,7 @@ func runConfigCmd(cmd *cobra.Command, args []string) error {
|
||||||
Home: gaiaCLIHome,
|
Home: gaiaCLIHome,
|
||||||
ChainID: chainID,
|
ChainID: chainID,
|
||||||
TrustNode: trustNode,
|
TrustNode: trustNode,
|
||||||
Encoding: encoding,
|
Output: "text",
|
||||||
Output: output,
|
|
||||||
Node: node,
|
Node: node,
|
||||||
Trace: false,
|
Trace: false,
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,7 +236,7 @@ func TestGaiaCLICreateValidator(t *testing.T) {
|
||||||
initialPool.BondedTokens = initialPool.BondedTokens.Add(sdk.NewDec(100)) // Delegate tx on GaiaAppGenState
|
initialPool.BondedTokens = initialPool.BondedTokens.Add(sdk.NewDec(100)) // Delegate tx on GaiaAppGenState
|
||||||
|
|
||||||
// create validator
|
// create validator
|
||||||
cvStr := fmt.Sprintf("gaiacli tx create-validator %v", flags)
|
cvStr := fmt.Sprintf("gaiacli tx stake create-validator %v", flags)
|
||||||
cvStr += fmt.Sprintf(" --from=%s", "bar")
|
cvStr += fmt.Sprintf(" --from=%s", "bar")
|
||||||
cvStr += fmt.Sprintf(" --pubkey=%s", barCeshPubKey)
|
cvStr += fmt.Sprintf(" --pubkey=%s", barCeshPubKey)
|
||||||
cvStr += fmt.Sprintf(" --amount=%v", "2steak")
|
cvStr += fmt.Sprintf(" --amount=%v", "2steak")
|
||||||
|
@ -267,12 +267,12 @@ func TestGaiaCLICreateValidator(t *testing.T) {
|
||||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %s %v", barAddr, flags))
|
||||||
require.Equal(t, int64(8), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc)
|
require.Equal(t, int64(8), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc)
|
||||||
|
|
||||||
validator := executeGetValidator(t, fmt.Sprintf("gaiacli query validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
validator := executeGetValidator(t, fmt.Sprintf("gaiacli query stake validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
||||||
require.Equal(t, validator.OperatorAddr, sdk.ValAddress(barAddr))
|
require.Equal(t, validator.OperatorAddr, sdk.ValAddress(barAddr))
|
||||||
require.True(sdk.DecEq(t, sdk.NewDec(2), validator.Tokens))
|
require.True(sdk.DecEq(t, sdk.NewDec(2), validator.Tokens))
|
||||||
|
|
||||||
// unbond a single share
|
// unbond a single share
|
||||||
unbondStr := fmt.Sprintf("gaiacli tx unbond begin %v", flags)
|
unbondStr := fmt.Sprintf("gaiacli tx stake unbond begin %v", flags)
|
||||||
unbondStr += fmt.Sprintf(" --from=%s", "bar")
|
unbondStr += fmt.Sprintf(" --from=%s", "bar")
|
||||||
unbondStr += fmt.Sprintf(" --validator=%s", sdk.ValAddress(barAddr))
|
unbondStr += fmt.Sprintf(" --validator=%s", sdk.ValAddress(barAddr))
|
||||||
unbondStr += fmt.Sprintf(" --shares-amount=%v", "1")
|
unbondStr += fmt.Sprintf(" --shares-amount=%v", "1")
|
||||||
|
@ -285,19 +285,19 @@ func TestGaiaCLICreateValidator(t *testing.T) {
|
||||||
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %v %v", barCech, flags))
|
barAcc = executeGetAccount(t, fmt.Sprintf("gaiacli query account %v %v", barCech, flags))
|
||||||
require.Equal(t, int64(9), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc)
|
require.Equal(t, int64(9), barAcc.GetCoins().AmountOf("steak").Int64(), "%v", barAcc)
|
||||||
*/
|
*/
|
||||||
validator = executeGetValidator(t, fmt.Sprintf("gaiacli query validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
validator = executeGetValidator(t, fmt.Sprintf("gaiacli query stake validator %s --output=json %v", sdk.ValAddress(barAddr), flags))
|
||||||
require.Equal(t, "1.0000000000", validator.Tokens.String())
|
require.Equal(t, "1.0000000000", validator.Tokens.String())
|
||||||
|
|
||||||
validatorUbds := executeGetValidatorUnbondingDelegations(t,
|
validatorUbds := executeGetValidatorUnbondingDelegations(t,
|
||||||
fmt.Sprintf("gaiacli query unbonding-delegations-from %s --output=json %v",
|
fmt.Sprintf("gaiacli query stake unbonding-delegations-from %s --output=json %v",
|
||||||
sdk.ValAddress(barAddr), flags))
|
sdk.ValAddress(barAddr), flags))
|
||||||
require.Len(t, validatorUbds, 1)
|
require.Len(t, validatorUbds, 1)
|
||||||
require.Equal(t, "1", validatorUbds[0].Balance.Amount.String())
|
require.Equal(t, "1", validatorUbds[0].Balance.Amount.String())
|
||||||
|
|
||||||
params := executeGetParams(t, fmt.Sprintf("gaiacli query parameters --output=json %v", flags))
|
params := executeGetParams(t, fmt.Sprintf("gaiacli query stake parameters --output=json %v", flags))
|
||||||
require.True(t, defaultParams.Equal(params))
|
require.True(t, defaultParams.Equal(params))
|
||||||
|
|
||||||
pool := executeGetPool(t, fmt.Sprintf("gaiacli query pool --output=json %v", flags))
|
pool := executeGetPool(t, fmt.Sprintf("gaiacli query stake pool --output=json %v", flags))
|
||||||
require.Equal(t, initialPool.BondedTokens, pool.BondedTokens)
|
require.Equal(t, initialPool.BondedTokens, pool.BondedTokens)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -317,11 +317,11 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
|
||||||
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(50), fooAcc.GetCoins().AmountOf("steak").Int64())
|
require.Equal(t, int64(50), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||||
|
|
||||||
proposalsQuery, _ := tests.ExecuteT(t, fmt.Sprintf("gaiacli query proposals %v", flags), "")
|
proposalsQuery, _ := tests.ExecuteT(t, fmt.Sprintf("gaiacli query gov proposals %v", flags), "")
|
||||||
require.Equal(t, "No matching proposals found", proposalsQuery)
|
require.Equal(t, "No matching proposals found", proposalsQuery)
|
||||||
|
|
||||||
// submit a test proposal
|
// submit a test proposal
|
||||||
spStr := fmt.Sprintf("gaiacli tx submit-proposal %v", flags)
|
spStr := fmt.Sprintf("gaiacli tx gov submit-proposal %v", flags)
|
||||||
spStr += fmt.Sprintf(" --from=%s", "foo")
|
spStr += fmt.Sprintf(" --from=%s", "foo")
|
||||||
spStr += fmt.Sprintf(" --deposit=%s", "5steak")
|
spStr += fmt.Sprintf(" --deposit=%s", "5steak")
|
||||||
spStr += fmt.Sprintf(" --type=%s", "Text")
|
spStr += fmt.Sprintf(" --type=%s", "Text")
|
||||||
|
@ -348,19 +348,19 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
|
||||||
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("steak").Int64())
|
require.Equal(t, int64(45), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||||
|
|
||||||
proposal1 := executeGetProposal(t, fmt.Sprintf("gaiacli query proposal --proposal-id=1 --output=json %v", flags))
|
proposal1 := executeGetProposal(t, fmt.Sprintf("gaiacli query gov proposal --proposal-id=1 --output=json %v", flags))
|
||||||
require.Equal(t, uint64(1), proposal1.GetProposalID())
|
require.Equal(t, uint64(1), proposal1.GetProposalID())
|
||||||
require.Equal(t, gov.StatusDepositPeriod, proposal1.GetStatus())
|
require.Equal(t, gov.StatusDepositPeriod, proposal1.GetStatus())
|
||||||
|
|
||||||
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query proposals %v", flags), "")
|
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query gov proposals %v", flags), "")
|
||||||
require.Equal(t, " 1 - Test", proposalsQuery)
|
require.Equal(t, " 1 - Test", proposalsQuery)
|
||||||
|
|
||||||
deposit := executeGetDeposit(t,
|
deposit := executeGetDeposit(t,
|
||||||
fmt.Sprintf("gaiacli query deposit --proposal-id=1 --depositer=%s --output=json %v",
|
fmt.Sprintf("gaiacli query gov deposit --proposal-id=1 --depositer=%s --output=json %v",
|
||||||
fooAddr, flags))
|
fooAddr, flags))
|
||||||
require.Equal(t, int64(5), deposit.Amount.AmountOf("steak").Int64())
|
require.Equal(t, int64(5), deposit.Amount.AmountOf("steak").Int64())
|
||||||
|
|
||||||
depositStr := fmt.Sprintf("gaiacli tx deposit %v", flags)
|
depositStr := fmt.Sprintf("gaiacli tx gov deposit %v", flags)
|
||||||
depositStr += fmt.Sprintf(" --from=%s", "foo")
|
depositStr += fmt.Sprintf(" --from=%s", "foo")
|
||||||
depositStr += fmt.Sprintf(" --deposit=%s", "10steak")
|
depositStr += fmt.Sprintf(" --deposit=%s", "10steak")
|
||||||
depositStr += fmt.Sprintf(" --proposal-id=%s", "1")
|
depositStr += fmt.Sprintf(" --proposal-id=%s", "1")
|
||||||
|
@ -380,22 +380,22 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
|
||||||
|
|
||||||
// test query deposit
|
// test query deposit
|
||||||
deposits := executeGetDeposits(t,
|
deposits := executeGetDeposits(t,
|
||||||
fmt.Sprintf("gaiacli query deposits --proposal-id=1 --output=json %v", flags))
|
fmt.Sprintf("gaiacli query gov deposits --proposal-id=1 --output=json %v", flags))
|
||||||
require.Len(t, deposits, 1)
|
require.Len(t, deposits, 1)
|
||||||
require.Equal(t, int64(15), deposits[0].Amount.AmountOf("steak").Int64())
|
require.Equal(t, int64(15), deposits[0].Amount.AmountOf("steak").Int64())
|
||||||
|
|
||||||
deposit = executeGetDeposit(t,
|
deposit = executeGetDeposit(t,
|
||||||
fmt.Sprintf("gaiacli query deposit --proposal-id=1 --depositer=%s --output=json %v",
|
fmt.Sprintf("gaiacli query gov deposit --proposal-id=1 --depositer=%s --output=json %v",
|
||||||
fooAddr, flags))
|
fooAddr, flags))
|
||||||
require.Equal(t, int64(15), deposit.Amount.AmountOf("steak").Int64())
|
require.Equal(t, int64(15), deposit.Amount.AmountOf("steak").Int64())
|
||||||
|
|
||||||
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(35), fooAcc.GetCoins().AmountOf("steak").Int64())
|
require.Equal(t, int64(35), fooAcc.GetCoins().AmountOf("steak").Int64())
|
||||||
proposal1 = executeGetProposal(t, fmt.Sprintf("gaiacli query proposal --proposal-id=1 --output=json %v", flags))
|
proposal1 = executeGetProposal(t, fmt.Sprintf("gaiacli query gov proposal --proposal-id=1 --output=json %v", flags))
|
||||||
require.Equal(t, uint64(1), proposal1.GetProposalID())
|
require.Equal(t, uint64(1), proposal1.GetProposalID())
|
||||||
require.Equal(t, gov.StatusVotingPeriod, proposal1.GetStatus())
|
require.Equal(t, gov.StatusVotingPeriod, proposal1.GetStatus())
|
||||||
|
|
||||||
voteStr := fmt.Sprintf("gaiacli tx vote %v", flags)
|
voteStr := fmt.Sprintf("gaiacli tx gov vote %v", flags)
|
||||||
voteStr += fmt.Sprintf(" --from=%s", "foo")
|
voteStr += fmt.Sprintf(" --from=%s", "foo")
|
||||||
voteStr += fmt.Sprintf(" --proposal-id=%s", "1")
|
voteStr += fmt.Sprintf(" --proposal-id=%s", "1")
|
||||||
voteStr += fmt.Sprintf(" --option=%s", "Yes")
|
voteStr += fmt.Sprintf(" --option=%s", "Yes")
|
||||||
|
@ -413,23 +413,23 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
|
||||||
executeWrite(t, voteStr, app.DefaultKeyPass)
|
executeWrite(t, voteStr, app.DefaultKeyPass)
|
||||||
tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
|
|
||||||
vote := executeGetVote(t, fmt.Sprintf("gaiacli query vote --proposal-id=1 --voter=%s --output=json %v", fooAddr, flags))
|
vote := executeGetVote(t, fmt.Sprintf("gaiacli query gov vote --proposal-id=1 --voter=%s --output=json %v", fooAddr, flags))
|
||||||
require.Equal(t, uint64(1), vote.ProposalID)
|
require.Equal(t, uint64(1), vote.ProposalID)
|
||||||
require.Equal(t, gov.OptionYes, vote.Option)
|
require.Equal(t, gov.OptionYes, vote.Option)
|
||||||
|
|
||||||
votes := executeGetVotes(t, fmt.Sprintf("gaiacli query votes --proposal-id=1 --output=json %v", flags))
|
votes := executeGetVotes(t, fmt.Sprintf("gaiacli query gov votes --proposal-id=1 --output=json %v", flags))
|
||||||
require.Len(t, votes, 1)
|
require.Len(t, votes, 1)
|
||||||
require.Equal(t, uint64(1), votes[0].ProposalID)
|
require.Equal(t, uint64(1), votes[0].ProposalID)
|
||||||
require.Equal(t, gov.OptionYes, votes[0].Option)
|
require.Equal(t, gov.OptionYes, votes[0].Option)
|
||||||
|
|
||||||
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query proposals --status=DepositPeriod %v", flags), "")
|
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query gov proposals --status=DepositPeriod %v", flags), "")
|
||||||
require.Equal(t, "No matching proposals found", proposalsQuery)
|
require.Equal(t, "No matching proposals found", proposalsQuery)
|
||||||
|
|
||||||
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query proposals --status=VotingPeriod %v", flags), "")
|
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query gov proposals --status=VotingPeriod %v", flags), "")
|
||||||
require.Equal(t, " 1 - Test", proposalsQuery)
|
require.Equal(t, " 1 - Test", proposalsQuery)
|
||||||
|
|
||||||
// submit a second test proposal
|
// submit a second test proposal
|
||||||
spStr = fmt.Sprintf("gaiacli tx submit-proposal %v", flags)
|
spStr = fmt.Sprintf("gaiacli tx gov submit-proposal %v", flags)
|
||||||
spStr += fmt.Sprintf(" --from=%s", "foo")
|
spStr += fmt.Sprintf(" --from=%s", "foo")
|
||||||
spStr += fmt.Sprintf(" --deposit=%s", "5steak")
|
spStr += fmt.Sprintf(" --deposit=%s", "5steak")
|
||||||
spStr += fmt.Sprintf(" --type=%s", "Text")
|
spStr += fmt.Sprintf(" --type=%s", "Text")
|
||||||
|
@ -439,7 +439,7 @@ func TestGaiaCLISubmitProposal(t *testing.T) {
|
||||||
executeWrite(t, spStr, app.DefaultKeyPass)
|
executeWrite(t, spStr, app.DefaultKeyPass)
|
||||||
tests.WaitForNextNBlocksTM(2, port)
|
tests.WaitForNextNBlocksTM(2, port)
|
||||||
|
|
||||||
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query proposals --limit=1 %v", flags), "")
|
proposalsQuery, _ = tests.ExecuteT(t, fmt.Sprintf("gaiacli query gov proposals --limit=1 %v", flags), "")
|
||||||
require.Equal(t, " 2 - Apples", proposalsQuery)
|
require.Equal(t, " 2 - Apples", proposalsQuery)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -552,7 +552,6 @@ func TestGaiaCLIConfig(t *testing.T) {
|
||||||
config, err := ioutil.ReadFile(path.Join(gaiacliHome, "config", "config.toml"))
|
config, err := ioutil.ReadFile(path.Join(gaiacliHome, "config", "config.toml"))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
expectedConfig := fmt.Sprintf(`chain_id = "%s"
|
expectedConfig := fmt.Sprintf(`chain_id = "%s"
|
||||||
encoding = "btc"
|
|
||||||
home = "%s"
|
home = "%s"
|
||||||
node = "%s"
|
node = "%s"
|
||||||
output = "text"
|
output = "text"
|
||||||
|
@ -570,8 +569,6 @@ trust_node = true
|
||||||
executeWrite(t, "gaiacli config", gaiacliHome, node, "y")
|
executeWrite(t, "gaiacli config", gaiacliHome, node, "y")
|
||||||
|
|
||||||
// ensure it works without an initialized gaiad state
|
// ensure it works without an initialized gaiad state
|
||||||
expectedConfig = fmt.Sprintf(`chain_id = ""
|
|
||||||
encoding = "btc"
|
|
||||||
home = "%s"
|
home = "%s"
|
||||||
node = "%s"
|
node = "%s"
|
||||||
output = "text"
|
output = "text"
|
||||||
|
|
Loading…
Reference in New Issue