migrate TestTallyOnlyValidatorsAllYes to simapp

This commit is contained in:
Jonathan Gimeno 2020-03-02 16:47:06 +01:00
parent e24734f72e
commit 88e3a22fc4
3 changed files with 32 additions and 28 deletions

View File

@ -23,7 +23,7 @@ func ProposalEqual(proposalA types.Proposal, proposalB types.Proposal) bool {
types.ModuleCdc.MustMarshalBinaryBare(proposalB)) types.ModuleCdc.MustMarshalBinaryBare(proposalB))
} }
func createValidators(ctx sdk.Context, app *simapp.SimApp, powers []int64) { func createValidators(ctx sdk.Context, app *simapp.SimApp, powers []int64) ([]sdk.AccAddress, []sdk.ValAddress) {
addrs := simapp.AddTestAddrsIncremental(app, ctx, 3, sdk.NewInt(10000000)) addrs := simapp.AddTestAddrsIncremental(app, ctx, 3, sdk.NewInt(10000000))
valAddrs := simapp.ConvertAddrsToValAddrs(addrs) valAddrs := simapp.ConvertAddrsToValAddrs(addrs)
pks := simapp.CreateTestPubKeys(3) pks := simapp.CreateTestPubKeys(3)
@ -56,4 +56,6 @@ func createValidators(ctx sdk.Context, app *simapp.SimApp, powers []int64) {
_, _ = app.StakingKeeper.Delegate(ctx, addrs[2], sdk.TokensFromConsensusPower(powers[2]), sdk.Unbonded, val3, true) _, _ = app.StakingKeeper.Delegate(ctx, addrs[2], sdk.TokensFromConsensusPower(powers[2]), sdk.Unbonded, val3, true)
_ = staking.EndBlocker(ctx, app.StakingKeeper) _ = staking.EndBlocker(ctx, app.StakingKeeper)
return addrs, valAddrs
} }

View File

@ -10,30 +10,6 @@ import (
"github.com/cosmos/cosmos-sdk/x/staking" "github.com/cosmos/cosmos-sdk/x/staking"
) )
func TestTallyOnlyValidatorsAllYes(t *testing.T) {
ctx, _, _, keeper, sk, _ := createTestInput(t, false, 100)
createValidators(ctx, sk, []int64{5, 5, 5})
tp := TestProposal
proposal, err := keeper.SubmitProposal(ctx, tp)
require.NoError(t, err)
proposalID := proposal.ProposalID
proposal.Status = types.StatusVotingPeriod
keeper.SetProposal(ctx, proposal)
require.NoError(t, keeper.AddVote(ctx, proposalID, valAccAddr1, types.OptionYes))
require.NoError(t, keeper.AddVote(ctx, proposalID, valAccAddr2, types.OptionYes))
require.NoError(t, keeper.AddVote(ctx, proposalID, valAccAddr3, types.OptionYes))
proposal, ok := keeper.GetProposal(ctx, proposalID)
require.True(t, ok)
passes, burnDeposits, tallyResults := keeper.Tally(ctx, proposal)
require.True(t, passes)
require.False(t, burnDeposits)
require.False(t, tallyResults.Equals(types.EmptyTallyResult()))
}
func TestTallyOnlyValidators51No(t *testing.T) { func TestTallyOnlyValidators51No(t *testing.T) {
ctx, _, _, keeper, sk, _ := createTestInput(t, false, 100) ctx, _, _, keeper, sk, _ := createTestInput(t, false, 100)
createValidators(ctx, sk, []int64{5, 6, 0}) createValidators(ctx, sk, []int64{5, 6, 0})

View File

@ -3,13 +3,12 @@ package keeper_test
import ( import (
"testing" "testing"
sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/require"
abci "github.com/tendermint/tendermint/abci/types" abci "github.com/tendermint/tendermint/abci/types"
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/simapp" "github.com/cosmos/cosmos-sdk/simapp"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/cosmos/cosmos-sdk/x/gov/types"
) )
@ -59,3 +58,30 @@ func TestTallyNoQuorum(t *testing.T) {
require.False(t, passes) require.False(t, passes)
require.True(t, burnDeposits) require.True(t, burnDeposits)
} }
func TestTallyOnlyValidatorsAllYes(t *testing.T) {
app := simapp.Setup(false)
ctx := app.BaseApp.NewContext(false, abci.Header{})
addrs, _ := createValidators(ctx, app, []int64{5, 5, 5})
valAccAddr1, valAccAddr2, valAccAddr3 := addrs[0], addrs[1], addrs[2]
tp := TestProposal
proposal, err := app.GovKeeper.SubmitProposal(ctx, tp)
require.NoError(t, err)
proposalID := proposal.ProposalID
proposal.Status = types.StatusVotingPeriod
app.GovKeeper.SetProposal(ctx, proposal)
require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr1, types.OptionYes))
require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr2, types.OptionYes))
require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr3, types.OptionYes))
proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
require.True(t, ok)
passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal)
require.True(t, passes)
require.False(t, burnDeposits)
require.False(t, tallyResults.Equals(types.EmptyTallyResult()))
}