stake test candidate query

This commit is contained in:
rigelrozanski 2018-04-16 19:49:00 -04:00
parent 09fe4c0262
commit d344de3b62
1 changed files with 43 additions and 26 deletions

View File

@ -12,46 +12,48 @@ import (
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/client/keys"
"github.com/cosmos/cosmos-sdk/cmd/gaia/app"
"github.com/cosmos/cosmos-sdk/server"
"github.com/cosmos/cosmos-sdk/tests"
"github.com/cosmos/cosmos-sdk/x/auth"
"github.com/cosmos/cosmos-sdk/x/stake"
crypto "github.com/tendermint/go-crypto"
crkeys "github.com/tendermint/go-crypto/keys"
)
//func TestGaiaCLISend(t *testing.T) {
func TestGaiaCLISend(t *testing.T) {
//tests.ExecuteT(t, "gaiad unsafe_reset_all")
//pass := "1234567890"
//executeWrite(t, "gaiacli keys delete foo", pass)
//executeWrite(t, "gaiacli keys delete bar", pass)
//masterKey, chainID := executeInit(t, "gaiad init")
tests.ExecuteT(t, "gaiad unsafe_reset_all")
pass := "1234567890"
executeWrite(t, "gaiacli keys delete foo", pass)
executeWrite(t, "gaiacli keys delete bar", pass)
masterKey, chainID := executeInit(t, "gaiad init")
//// get a free port, also setup some common flags
//servAddr := server.FreeTCPAddr(t)
//flags := fmt.Sprintf("--node=%v --chain-id=%v", servAddr, chainID)
// get a free port, also setup some common flags
servAddr := server.FreeTCPAddr(t)
flags := fmt.Sprintf("--node=%v --chain-id=%v", servAddr, chainID)
//// start gaiad server
//cmd, _, _ := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
//defer cmd.Process.Kill()
// start gaiad server
cmd, _, _ := tests.GoExecuteT(t, fmt.Sprintf("gaiad start --rpc.laddr=%v", servAddr))
defer cmd.Process.Kill()
//executeWrite(t, "gaiacli keys add foo --recover", pass, masterKey)
//executeWrite(t, "gaiacli keys add bar", pass)
executeWrite(t, "gaiacli keys add foo --recover", pass, masterKey)
executeWrite(t, "gaiacli keys add bar", pass)
//fooAddr, _ := executeGetAddr(t, "gaiacli keys show foo --output=json")
//barAddr, _ := executeGetAddr(t, "gaiacli keys show bar --output=json")
fooAddr, _ := executeGetAddr(t, "gaiacli keys show foo --output=json")
barAddr, _ := executeGetAddr(t, "gaiacli keys show bar --output=json")
//fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
//assert.Equal(t, int64(100000), fooAcc.GetCoins().AmountOf("fermion"))
fooAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
assert.Equal(t, int64(100000), fooAcc.GetCoins().AmountOf("fermion"))
//executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10fermion --to=%v --name=foo", flags, barAddr), pass)
//time.Sleep(time.Second * 3) // waiting for some blocks to pass
executeWrite(t, fmt.Sprintf("gaiacli send %v --amount=10fermion --to=%v --name=foo", flags, barAddr), pass)
time.Sleep(time.Second * 3) // waiting for some blocks to pass
//barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags))
//assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("fermion"))
//fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
//assert.Equal(t, int64(99990), fooAcc.GetCoins().AmountOf("fermion"))
//}
barAcc := executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", barAddr, flags))
assert.Equal(t, int64(10), barAcc.GetCoins().AmountOf("fermion"))
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
assert.Equal(t, int64(99990), fooAcc.GetCoins().AmountOf("fermion"))
}
func TestGaiaCLIDeclareCandidacy(t *testing.T) {
@ -94,9 +96,11 @@ func TestGaiaCLIDeclareCandidacy(t *testing.T) {
declStr += fmt.Sprintf(" --moniker=%v", "foo-vally")
fmt.Printf("debug declStr: %v\n", declStr)
executeWrite(t, declStr, pass)
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
time.Sleep(time.Second * 3) // waiting for some blocks to pass
fooAcc = executeGetAccount(t, fmt.Sprintf("gaiacli account %v %v", fooAddr, flags))
assert.Equal(t, int64(99997), fooAcc.GetCoins().AmountOf("fermion"))
candidate := executeGetCandidate(t, fmt.Sprintf("gaiacli candidate %v --address=%v", flags, fooAddr))
assert.Equal(t, candidate.Address.String(), fooAddr)
}
func executeWrite(t *testing.T, cmdStr string, writes ...string) {
@ -142,7 +146,11 @@ func executeGetAddr(t *testing.T, cmdStr string) (addr, pubKey string) {
var info crkeys.Info
keys.UnmarshalJSON([]byte(out), &info)
pubKey = hex.EncodeToString(info.PubKey.(crypto.PubKeyEd25519).Bytes())
// TODO this is really wierd, also error that not 64 characters!
pubKey = strings.TrimLeft(pubKey, "1624de6220")
pubKey = fmt.Sprintf("%064v", pubKey)
fmt.Printf("debug pubKey: %v\n", pubKey)
addr = info.PubKey.Address().String()
fmt.Printf("debug addr: %v\n", addr)
@ -160,3 +168,12 @@ func executeGetAccount(t *testing.T, cmdStr string) auth.BaseAccount {
require.NoError(t, err, "value %v, err %v", string(value), err)
return acc
}
func executeGetCandidate(t *testing.T, cmdStr string) stake.Candidate {
out := tests.ExecuteT(t, cmdStr)
var candidate stake.Candidate
cdc := app.MakeCodec()
err := cdc.UnmarshalJSON([]byte(out), &candidate)
require.NoError(t, err, "out %v, err %v", out, err)
return candidate
}