From d344de3b629e11cf423c988cd06b8c069f97ba03 Mon Sep 17 00:00:00 2001 From: rigelrozanski Date: Mon, 16 Apr 2018 19:49:00 -0400 Subject: [PATCH] stake test candidate query --- cmd/gaia/cmd/cli_test.go | 69 +++++++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 26 deletions(-) diff --git a/cmd/gaia/cmd/cli_test.go b/cmd/gaia/cmd/cli_test.go index 225c2bd07..8011d7a69 100644 --- a/cmd/gaia/cmd/cli_test.go +++ b/cmd/gaia/cmd/cli_test.go @@ -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 +}