From d3cb26522a8b677c051960bbd9af968dd088d24f Mon Sep 17 00:00:00 2001 From: Likhita Polavarapu <78951027+likhita-809@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:52:41 +0530 Subject: [PATCH] chore: Replace testify with gotest.tools in gov integration tests (#14501) --- tests/integration/gov/common_test.go | 5 +- tests/integration/gov/genesis_test.go | 40 +- tests/integration/gov/keeper/common_test.go | 12 +- .../integration/gov/keeper/grpc_query_test.go | 87 +++-- tests/integration/gov/keeper/keeper_test.go | 46 +-- tests/integration/gov/keeper/tally_test.go | 359 ++++++++++-------- tests/integration/gov/module_test.go | 45 +-- 7 files changed, 320 insertions(+), 274 deletions(-) diff --git a/tests/integration/gov/common_test.go b/tests/integration/gov/common_test.go index 27e6932c60..c730fdc90e 100644 --- a/tests/integration/gov/common_test.go +++ b/tests/integration/gov/common_test.go @@ -4,13 +4,14 @@ import ( "testing" "cosmossdk.io/math" + "gotest.tools/v3/assert" + sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/cosmos/cosmos-sdk/x/gov/types" v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stretchr/testify/require" ) var ( @@ -23,7 +24,7 @@ var ( // mkTestLegacyContent creates a MsgExecLegacyContent for testing purposes. func mkTestLegacyContent(t *testing.T) *v1.MsgExecLegacyContent { msgContent, err := v1.NewLegacyContent(TestProposal, authtypes.NewModuleAddress(types.ModuleName).String()) - require.NoError(t, err) + assert.NilError(t, err) return msgContent } diff --git a/tests/integration/gov/genesis_test.go b/tests/integration/gov/genesis_test.go index f417bdb173..f29a6f88ab 100644 --- a/tests/integration/gov/genesis_test.go +++ b/tests/integration/gov/genesis_test.go @@ -4,9 +4,9 @@ import ( "encoding/json" "testing" - "github.com/stretchr/testify/require" abci "github.com/tendermint/tendermint/abci/types" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "gotest.tools/v3/assert" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/runtime" @@ -64,7 +64,7 @@ func TestImportExportQueues(t *testing.T) { simtestutil.DefaultStartUpConfig(), &s1.AccountKeeper, &s1.BankKeeper, &s1.DistrKeeper, &s1.GovKeeper, &s1.StakingKeeper, &s1.cdc, &s1.appBuilder, ) - require.NoError(t, err) + assert.NilError(t, err) ctx := s1.app.BaseApp.NewContext(false, tmproto.Header{}) addrs := simtestutil.AddTestAddrs(s1.BankKeeper, s1.StakingKeeper, ctx, 1, valTokens) @@ -75,23 +75,23 @@ func TestImportExportQueues(t *testing.T) { ctx = s1.app.BaseApp.NewContext(false, tmproto.Header{}) // Create two proposals, put the second into the voting period proposal1, err := s1.GovKeeper.SubmitProposal(ctx, []sdk.Msg{mkTestLegacyContent(t)}, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID1 := proposal1.Id proposal2, err := s1.GovKeeper.SubmitProposal(ctx, []sdk.Msg{mkTestLegacyContent(t)}, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID2 := proposal2.Id votingStarted, err := s1.GovKeeper.AddDeposit(ctx, proposalID2, addrs[0], s1.GovKeeper.GetParams(ctx).MinDeposit) - require.NoError(t, err) - require.True(t, votingStarted) + assert.NilError(t, err) + assert.Assert(t, votingStarted) proposal1, ok := s1.GovKeeper.GetProposal(ctx, proposalID1) - require.True(t, ok) + assert.Assert(t, ok) proposal2, ok = s1.GovKeeper.GetProposal(ctx, proposalID2) - require.True(t, ok) - require.True(t, proposal1.Status == v1.StatusDepositPeriod) - require.True(t, proposal2.Status == v1.StatusVotingPeriod) + assert.Assert(t, ok) + assert.Assert(t, proposal1.Status == v1.StatusDepositPeriod) + assert.Assert(t, proposal2.Status == v1.StatusVotingPeriod) authGenState := s1.AccountKeeper.ExportGenesis(ctx) bankGenState := s1.BankKeeper.ExportGenesis(ctx) @@ -109,7 +109,7 @@ func TestImportExportQueues(t *testing.T) { genesisState[distributiontypes.ModuleName] = s1.cdc.MustMarshalJSON(distributionGenState) stateBytes, err := json.MarshalIndent(genesisState, "", " ") - require.NoError(t, err) + assert.NilError(t, err) s2 := suite{} s2.app, err = simtestutil.SetupWithConfiguration( @@ -117,7 +117,7 @@ func TestImportExportQueues(t *testing.T) { simtestutil.DefaultStartUpConfig(), &s2.AccountKeeper, &s2.BankKeeper, &s2.DistrKeeper, &s2.GovKeeper, &s2.StakingKeeper, &s2.cdc, &s2.appBuilder, ) - require.NoError(t, err) + assert.NilError(t, err) s2.app.InitChain( abci.RequestInitChain{ @@ -140,22 +140,22 @@ func TestImportExportQueues(t *testing.T) { // Make sure that they are still in the DepositPeriod and VotingPeriod respectively proposal1, ok = s2.GovKeeper.GetProposal(ctx2, proposalID1) - require.True(t, ok) + assert.Assert(t, ok) proposal2, ok = s2.GovKeeper.GetProposal(ctx2, proposalID2) - require.True(t, ok) - require.True(t, proposal1.Status == v1.StatusDepositPeriod) - require.True(t, proposal2.Status == v1.StatusVotingPeriod) + assert.Assert(t, ok) + assert.Assert(t, proposal1.Status == v1.StatusDepositPeriod) + assert.Assert(t, proposal2.Status == v1.StatusVotingPeriod) macc := s2.GovKeeper.GetGovernanceAccount(ctx2) - require.Equal(t, sdk.Coins(s2.GovKeeper.GetParams(ctx2).MinDeposit), s2.BankKeeper.GetAllBalances(ctx2, macc.GetAddress())) + assert.DeepEqual(t, sdk.Coins(s2.GovKeeper.GetParams(ctx2).MinDeposit), s2.BankKeeper.GetAllBalances(ctx2, macc.GetAddress())) // Run the endblocker. Check to make sure that proposal1 is removed from state, and proposal2 is finished VotingPeriod. gov.EndBlocker(ctx2, s2.GovKeeper) proposal1, ok = s2.GovKeeper.GetProposal(ctx2, proposalID1) - require.False(t, ok) + assert.Assert(t, ok == false) proposal2, ok = s2.GovKeeper.GetProposal(ctx2, proposalID2) - require.True(t, ok) - require.True(t, proposal2.Status == v1.StatusRejected) + assert.Assert(t, ok) + assert.Assert(t, proposal2.Status == v1.StatusRejected) } diff --git a/tests/integration/gov/keeper/common_test.go b/tests/integration/gov/keeper/common_test.go index 91574fa197..8bd1518752 100644 --- a/tests/integration/gov/keeper/common_test.go +++ b/tests/integration/gov/keeper/common_test.go @@ -3,9 +3,9 @@ package keeper_test import ( "testing" - "github.com/stretchr/testify/require" - "cosmossdk.io/simapp" + "gotest.tools/v3/assert" + simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" "github.com/cosmos/cosmos-sdk/testutil/testdata" sdk "github.com/cosmos/cosmos-sdk/types" @@ -39,7 +39,7 @@ func getTestProposal() []sdk.Msg { } func createValidators(t *testing.T, ctx sdk.Context, app *simapp.SimApp, powers []int64) ([]sdk.AccAddress, []sdk.ValAddress) { - addrs := simapp.AddTestAddrsIncremental(app, ctx, 5, sdk.NewInt(30000000)) + addrs := simtestutil.AddTestAddrsIncremental(app.BankKeeper, app.StakingKeeper, ctx, 5, sdk.NewInt(30000000)) valAddrs := simtestutil.ConvertAddrsToValAddrs(addrs) pks := simtestutil.CreateTestPubKeys(5) cdc := moduletestutil.MakeTestEncodingConfig().Codec @@ -53,11 +53,11 @@ func createValidators(t *testing.T, ctx sdk.Context, app *simapp.SimApp, powers ) val1, err := stakingtypes.NewValidator(valAddrs[0], pks[0], stakingtypes.Description{}) - require.NoError(t, err) + assert.NilError(t, err) val2, err := stakingtypes.NewValidator(valAddrs[1], pks[1], stakingtypes.Description{}) - require.NoError(t, err) + assert.NilError(t, err) val3, err := stakingtypes.NewValidator(valAddrs[2], pks[2], stakingtypes.Description{}) - require.NoError(t, err) + assert.NilError(t, err) app.StakingKeeper.SetValidator(ctx, val1) app.StakingKeeper.SetValidator(ctx, val2) diff --git a/tests/integration/gov/keeper/grpc_query_test.go b/tests/integration/gov/keeper/grpc_query_test.go index d0e47cdc98..dc8105e0ea 100644 --- a/tests/integration/gov/keeper/grpc_query_test.go +++ b/tests/integration/gov/keeper/grpc_query_test.go @@ -3,16 +3,22 @@ package keeper_test import ( gocontext "context" "fmt" + "testing" + + "gotest.tools/v3/assert" sdk "github.com/cosmos/cosmos-sdk/types" v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) -func (suite *KeeperTestSuite) TestGRPCQueryTally() { - app, ctx, queryClient := suite.app, suite.ctx, suite.queryClient +func TestGRPCQueryTally(t *testing.T) { + t.Parallel() + f := initFixture(t) - addrs, _ := createValidators(suite.T(), ctx, app, []int64{5, 5, 5}) + app, ctx, queryClient := f.app, f.ctx, f.queryClient + + addrs, _ := createValidators(t, ctx, app, []int64{5, 5, 5}) var ( req *v1.QueryTallyResultRequest @@ -21,9 +27,10 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { ) testCases := []struct { - msg string - malleate func() - expPass bool + msg string + malleate func() + expPass bool + expErrMsg string }{ { "empty request", @@ -31,6 +38,7 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { req = &v1.QueryTallyResultRequest{} }, false, + "proposal id can not be 0", }, { "zero proposal id request", @@ -38,6 +46,7 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { req = &v1.QueryTallyResultRequest{ProposalId: 0} }, false, + "proposal id can not be 0", }, { "query non existed proposal", @@ -45,14 +54,15 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { req = &v1.QueryTallyResultRequest{ProposalId: 1} }, false, + "proposal 1 doesn't exist", }, { "create a proposal and get tally", func() { var err error proposal, err = app.GovKeeper.SubmitProposal(ctx, TestProposal, "", "test", "description", addrs[0]) - suite.Require().NoError(err) - suite.Require().NotNil(proposal) + assert.NilError(t, err) + assert.Assert(t, proposal.String() != "") req = &v1.QueryTallyResultRequest{ProposalId: proposal.Id} @@ -62,6 +72,7 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { } }, true, + "", }, { "request tally after few votes", @@ -69,9 +80,9 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - suite.Require().NoError(app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - suite.Require().NoError(app.GovKeeper.AddVote(ctx, proposal.Id, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - suite.Require().NoError(app.GovKeeper.AddVote(ctx, proposal.Id, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposal.Id, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposal.Id, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) req = &v1.QueryTallyResultRequest{ProposalId: proposal.Id} @@ -85,6 +96,7 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { } }, true, + "", }, { "request final tally after status changed", @@ -100,30 +112,34 @@ func (suite *KeeperTestSuite) TestGRPCQueryTally() { } }, true, + "", }, } for _, testCase := range testCases { - suite.Run(fmt.Sprintf("Case %s", testCase.msg), func() { + t.Run(fmt.Sprintf("Case %s", testCase.msg), func(t *testing.T) { testCase.malleate() tally, err := queryClient.TallyResult(gocontext.Background(), req) if testCase.expPass { - suite.Require().NoError(err) - suite.Require().Equal(expRes.String(), tally.String()) + assert.NilError(t, err) + assert.Equal(t, expRes.String(), tally.String()) } else { - suite.Require().Error(err) - suite.Require().Nil(tally) + assert.ErrorContains(t, err, testCase.expErrMsg) + assert.Assert(t, tally == nil) } }) } } -func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { - app, ctx, queryClient := suite.app, suite.ctx, suite.legacyQueryClient +func TestLegacyGRPCQueryTally(t *testing.T) { + t.Parallel() + f := initFixture(t) - addrs, _ := createValidators(suite.T(), ctx, app, []int64{5, 5, 5}) + app, ctx, queryClient := f.app, f.ctx, f.legacyQueryClient + + addrs, _ := createValidators(t, ctx, app, []int64{5, 5, 5}) var ( req *v1beta1.QueryTallyResultRequest @@ -132,9 +148,10 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { ) testCases := []struct { - msg string - malleate func() - expPass bool + msg string + malleate func() + expPass bool + expErrMsg string }{ { "empty request", @@ -142,6 +159,7 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { req = &v1beta1.QueryTallyResultRequest{} }, false, + "proposal id can not be 0", }, { "zero proposal id request", @@ -149,6 +167,7 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { req = &v1beta1.QueryTallyResultRequest{ProposalId: 0} }, false, + "proposal id can not be 0", }, { "query non existed proposal", @@ -156,14 +175,15 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { req = &v1beta1.QueryTallyResultRequest{ProposalId: 1} }, false, + "proposal 1 doesn't exist", }, { "create a proposal and get tally", func() { var err error proposal, err = app.GovKeeper.SubmitProposal(ctx, TestProposal, "", "test", "description", addrs[0]) - suite.Require().NoError(err) - suite.Require().NotNil(proposal) + assert.NilError(t, err) + assert.Assert(t, proposal.String() != "") req = &v1beta1.QueryTallyResultRequest{ProposalId: proposal.Id} @@ -173,6 +193,7 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { } }, true, + "", }, { "request tally after few votes", @@ -180,9 +201,9 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - suite.Require().NoError(app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - suite.Require().NoError(app.GovKeeper.AddVote(ctx, proposal.Id, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - suite.Require().NoError(app.GovKeeper.AddVote(ctx, proposal.Id, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposal.Id, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposal.Id, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) req = &v1beta1.QueryTallyResultRequest{ProposalId: proposal.Id} @@ -196,6 +217,7 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { } }, true, + "", }, { "request final tally after status changed", @@ -211,21 +233,22 @@ func (suite *KeeperTestSuite) TestLegacyGRPCQueryTally() { } }, true, + "", }, } for _, testCase := range testCases { - suite.Run(fmt.Sprintf("Case %s", testCase.msg), func() { + t.Run(fmt.Sprintf("Case %s", testCase.msg), func(t *testing.T) { testCase.malleate() tally, err := queryClient.TallyResult(gocontext.Background(), req) if testCase.expPass { - suite.Require().NoError(err) - suite.Require().Equal(expRes.String(), tally.String()) + assert.NilError(t, err) + assert.Equal(t, expRes.String(), tally.String()) } else { - suite.Require().Error(err) - suite.Require().Nil(tally) + assert.ErrorContains(t, err, testCase.expErrMsg) + assert.Assert(t, tally == nil) } }) } diff --git a/tests/integration/gov/keeper/keeper_test.go b/tests/integration/gov/keeper/keeper_test.go index ba0271e805..223b1e2f86 100644 --- a/tests/integration/gov/keeper/keeper_test.go +++ b/tests/integration/gov/keeper/keeper_test.go @@ -3,11 +3,12 @@ package keeper_test import ( "testing" - "github.com/stretchr/testify/suite" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "cosmossdk.io/simapp" + tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "gotest.tools/v3/assert" + "github.com/cosmos/cosmos-sdk/baseapp" + simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/gov/keeper" "github.com/cosmos/cosmos-sdk/x/gov/types" @@ -16,14 +17,12 @@ import ( minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" ) -// KeeperTestSuite only tests gov's keeper logic around tallying, since it +// fixture only tests gov's keeper logic around tallying, since it // relies on complex interactions with x/staking. // // It also uses simapp (and not a depinjected app) because we manually set a // new app.StakingKeeper in `createValidators`. -type KeeperTestSuite struct { - suite.Suite - +type fixture struct { app *simapp.SimApp ctx sdk.Context queryClient v1.QueryClient @@ -33,17 +32,22 @@ type KeeperTestSuite struct { legacyMsgSrvr v1beta1.MsgServer } -func (suite *KeeperTestSuite) SetupTest() { - app := simapp.Setup(suite.T(), false) +// initFixture uses simapp (and not a depinjected app) because we manually set a +// new app.StakingKeeper in `createValidators` which is used in most of the +// gov keeper tests. +func initFixture(t *testing.T) *fixture { + f := &fixture{} + + app := simapp.Setup(t, false) ctx := app.BaseApp.NewContext(false, tmproto.Header{}) // Populate the gov account with some coins, as the TestProposal we have // is a MsgSend from the gov account. coins := sdk.NewCoins(sdk.NewCoin("stake", sdk.NewInt(100000))) err := app.BankKeeper.MintCoins(ctx, minttypes.ModuleName, coins) - suite.NoError(err) + assert.NilError(t, err) err = app.BankKeeper.SendCoinsFromModuleToModule(ctx, minttypes.ModuleName, types.ModuleName, coins) - suite.NoError(err) + assert.NilError(t, err) queryHelper := baseapp.NewQueryServerTestHelper(ctx, app.InterfaceRegistry()) v1.RegisterQueryServer(queryHelper, app.GovKeeper) @@ -52,17 +56,15 @@ func (suite *KeeperTestSuite) SetupTest() { queryClient := v1.NewQueryClient(queryHelper) legacyQueryClient := v1beta1.NewQueryClient(legacyQueryHelper) - suite.app = app - suite.ctx = ctx - suite.queryClient = queryClient - suite.legacyQueryClient = legacyQueryClient - suite.msgSrvr = keeper.NewMsgServerImpl(suite.app.GovKeeper) + f.app = app + f.ctx = ctx + f.queryClient = queryClient + f.legacyQueryClient = legacyQueryClient + f.msgSrvr = keeper.NewMsgServerImpl(f.app.GovKeeper) - govAcct := suite.app.GovKeeper.GetGovernanceAccount(suite.ctx).GetAddress() - suite.legacyMsgSrvr = keeper.NewLegacyMsgServerImpl(govAcct.String(), suite.msgSrvr) - suite.addrs = simapp.AddTestAddrsIncremental(app, ctx, 2, sdk.NewInt(30000000)) -} + govAcct := f.app.GovKeeper.GetGovernanceAccount(f.ctx).GetAddress() + f.legacyMsgSrvr = keeper.NewLegacyMsgServerImpl(govAcct.String(), f.msgSrvr) + f.addrs = simtestutil.AddTestAddrsIncremental(app.BankKeeper, app.StakingKeeper, ctx, 2, sdk.NewInt(30000000)) -func TestKeeperTestSuite(t *testing.T) { - suite.Run(t, new(KeeperTestSuite)) + return f } diff --git a/tests/integration/gov/keeper/tally_test.go b/tests/integration/gov/keeper/tally_test.go index ade686744c..aa88c0e9ba 100644 --- a/tests/integration/gov/keeper/tally_test.go +++ b/tests/integration/gov/keeper/tally_test.go @@ -3,10 +3,9 @@ package keeper_test import ( "testing" - "github.com/stretchr/testify/require" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "gotest.tools/v3/assert" - "cosmossdk.io/simapp" + simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" v1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" "github.com/cosmos/cosmos-sdk/x/staking" @@ -14,345 +13,371 @@ import ( ) func TestTallyNoOneVotes(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx createValidators(t, ctx, app, []int64{5, 5, 5}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", sdk.AccAddress("cosmos1ghekyjucln7y67ntx7cf27m9dpuxxemn4c8g4r")) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) - require.True(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult())) } func TestTallyNoQuorum(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx createValidators(t, ctx, app, []int64{2, 5, 0}) - addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.NewInt(10000000)) + addrs := simtestutil.AddTestAddrsIncremental(app.BankKeeper, app.StakingKeeper, ctx, 1, sdk.NewInt(10000000)) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) err = app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "") - require.Nil(t, err) + assert.NilError(t, err) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, _ := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) } func TestTallyOnlyValidatorsAllYes(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx addrs, _ := createValidators(t, ctx, app, []int64{5, 5, 5}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.True(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyOnlyValidators51No(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx valAccAddrs, _ := createValidators(t, ctx, app, []int64{5, 6, 0}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", valAccAddrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, _ := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) } func TestTallyOnlyValidators51Yes(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx valAccAddrs, _ := createValidators(t, ctx, app, []int64{5, 6, 0}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", valAccAddrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.True(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyOnlyValidatorsVetoed(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx valAccAddrs, _ := createValidators(t, ctx, app, []int64{6, 6, 7}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", valAccAddrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[2], v1.NewNonSplitVoteOption(v1.OptionNoWithVeto), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[2], v1.NewNonSplitVoteOption(v1.OptionNoWithVeto), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.True(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyOnlyValidatorsAbstainPasses(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx valAccAddrs, _ := createValidators(t, ctx, app, []int64{6, 6, 7}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", valAccAddrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionAbstain), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionAbstain), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.True(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyOnlyValidatorsAbstainFails(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx valAccAddrs, _ := createValidators(t, ctx, app, []int64{6, 6, 7}) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", valAccAddrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionAbstain), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[2], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[0], v1.NewNonSplitVoteOption(v1.OptionAbstain), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddrs[2], v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyOnlyValidatorsNonVoter(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx valAccAddrs, _ := createValidators(t, ctx, app, []int64{5, 6, 7}) valAccAddr1, valAccAddr2 := valAccAddrs[0], valAccAddrs[1] tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", valAccAddrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr1, v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr2, v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr1, v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, valAccAddr2, v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyDelgatorOverride(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx addrs, valAddrs := createValidators(t, ctx, app, []int64{5, 6, 7}) delTokens := app.StakingKeeper.TokensFromConsensusPower(ctx, 30) val1, found := app.StakingKeeper.GetValidator(ctx, valAddrs[0]) - require.True(t, found) + assert.Assert(t, found) _, err := app.StakingKeeper.Delegate(ctx, addrs[4], delTokens, stakingtypes.Unbonded, val1, true) - require.NoError(t, err) + assert.NilError(t, err) _ = staking.EndBlocker(ctx, app.StakingKeeper) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[3], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[4], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[3], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[4], v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyDelgatorInherit(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx addrs, vals := createValidators(t, ctx, app, []int64{5, 6, 7}) delTokens := app.StakingKeeper.TokensFromConsensusPower(ctx, 30) val3, found := app.StakingKeeper.GetValidator(ctx, vals[2]) - require.True(t, found) + assert.Assert(t, found) _, err := app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val3, true) - require.NoError(t, err) + assert.NilError(t, err) _ = staking.EndBlocker(ctx, app.StakingKeeper) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.True(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyDelgatorMultipleOverride(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx addrs, vals := createValidators(t, ctx, app, []int64{5, 6, 7}) delTokens := app.StakingKeeper.TokensFromConsensusPower(ctx, 10) val1, found := app.StakingKeeper.GetValidator(ctx, vals[0]) - require.True(t, found) + assert.Assert(t, found) val2, found := app.StakingKeeper.GetValidator(ctx, vals[1]) - require.True(t, found) + assert.Assert(t, found) _, err := app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val1, true) - require.NoError(t, err) + assert.NilError(t, err) _, err = app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val2, true) - require.NoError(t, err) + assert.NilError(t, err) _ = staking.EndBlocker(ctx, app.StakingKeeper) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[3], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[3], v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyDelgatorMultipleInherit(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx createValidators(t, ctx, app, []int64{25, 6, 7}) @@ -360,110 +385,114 @@ func TestTallyDelgatorMultipleInherit(t *testing.T) { delTokens := app.StakingKeeper.TokensFromConsensusPower(ctx, 10) val2, found := app.StakingKeeper.GetValidator(ctx, vals[1]) - require.True(t, found) + assert.Assert(t, found) val3, found := app.StakingKeeper.GetValidator(ctx, vals[2]) - require.True(t, found) + assert.Assert(t, found) _, err := app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val2, true) - require.NoError(t, err) + assert.NilError(t, err) _, err = app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val3, true) - require.NoError(t, err) + assert.NilError(t, err) _ = staking.EndBlocker(ctx, app.StakingKeeper) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.False(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes == false) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyJailedValidator(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx addrs, valAddrs := createValidators(t, ctx, app, []int64{25, 6, 7}) delTokens := app.StakingKeeper.TokensFromConsensusPower(ctx, 10) val2, found := app.StakingKeeper.GetValidator(ctx, valAddrs[1]) - require.True(t, found) + assert.Assert(t, found) val3, found := app.StakingKeeper.GetValidator(ctx, valAddrs[2]) - require.True(t, found) + assert.Assert(t, found) _, err := app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val2, true) - require.NoError(t, err) + assert.NilError(t, err) _, err = app.StakingKeeper.Delegate(ctx, addrs[3], delTokens, stakingtypes.Unbonded, val3, true) - require.NoError(t, err) + assert.NilError(t, err) _ = staking.EndBlocker(ctx, app.StakingKeeper) consAddr, err := val2.GetConsAddr() - require.NoError(t, err) + assert.NilError(t, err) app.StakingKeeper.Jail(ctx, sdk.ConsAddress(consAddr.Bytes())) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionNo), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.True(t, passes) - require.False(t, burnDeposits) - require.False(t, tallyResults.Equals(v1.EmptyTallyResult())) + assert.Assert(t, passes) + assert.Assert(t, burnDeposits == false) + assert.Assert(t, tallyResults.Equals(v1.EmptyTallyResult()) == false) } func TestTallyValidatorMultipleDelegations(t *testing.T) { - app := simapp.Setup(t, false) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) + t.Parallel() + f := initFixture(t) + + app, ctx := f.app, f.ctx addrs, valAddrs := createValidators(t, ctx, app, []int64{10, 10, 10}) delTokens := app.StakingKeeper.TokensFromConsensusPower(ctx, 10) val2, found := app.StakingKeeper.GetValidator(ctx, valAddrs[1]) - require.True(t, found) + assert.Assert(t, found) _, err := app.StakingKeeper.Delegate(ctx, addrs[0], delTokens, stakingtypes.Unbonded, val2, true) - require.NoError(t, err) + assert.NilError(t, err) tp := TestProposal proposal, err := app.GovKeeper.SubmitProposal(ctx, tp, "", "test", "description", addrs[0]) - require.NoError(t, err) + assert.NilError(t, err) proposalID := proposal.Id proposal.Status = v1.StatusVotingPeriod app.GovKeeper.SetProposal(ctx, proposal) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) - require.NoError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[0], v1.NewNonSplitVoteOption(v1.OptionYes), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[1], v1.NewNonSplitVoteOption(v1.OptionNo), "")) + assert.NilError(t, app.GovKeeper.AddVote(ctx, proposalID, addrs[2], v1.NewNonSplitVoteOption(v1.OptionYes), "")) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID) - require.True(t, ok) + assert.Assert(t, ok) passes, burnDeposits, tallyResults := app.GovKeeper.Tally(ctx, proposal) - require.True(t, passes) - require.False(t, burnDeposits) + assert.Assert(t, passes) + assert.Assert(t, burnDeposits == false) expectedYes := app.StakingKeeper.TokensFromConsensusPower(ctx, 30) expectedAbstain := app.StakingKeeper.TokensFromConsensusPower(ctx, 0) @@ -471,5 +500,5 @@ func TestTallyValidatorMultipleDelegations(t *testing.T) { expectedNoWithVeto := app.StakingKeeper.TokensFromConsensusPower(ctx, 0) expectedTallyResult := v1.NewTallyResult(expectedYes, expectedAbstain, expectedNo, expectedNoWithVeto) - require.True(t, tallyResults.Equals(expectedTallyResult)) + assert.Assert(t, tallyResults.Equals(expectedTallyResult)) } diff --git a/tests/integration/gov/module_test.go b/tests/integration/gov/module_test.go index 36ce552468..a3fc2eb5e8 100644 --- a/tests/integration/gov/module_test.go +++ b/tests/integration/gov/module_test.go @@ -3,42 +3,33 @@ package gov_test import ( "testing" - dbm "github.com/cosmos/cosmos-db" - "github.com/stretchr/testify/require" - abcitypes "github.com/tendermint/tendermint/abci/types" - tmjson "github.com/tendermint/tendermint/libs/json" - "github.com/tendermint/tendermint/libs/log" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "gotest.tools/v3/assert" - "cosmossdk.io/simapp" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/server" + "github.com/cosmos/cosmos-sdk/testutil/configurator" simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/cosmos/cosmos-sdk/x/gov/types" + _ "github.com/cosmos/cosmos-sdk/x/mint" ) func TestItCreatesModuleAccountOnInitBlock(t *testing.T) { - db := dbm.NewMemDB() - - appOptions := make(simtestutil.AppOptionsMap, 0) - appOptions[flags.FlagHome] = simapp.DefaultNodeHome - appOptions[server.FlagInvCheckPeriod] = 5 - - app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, appOptions) - - genesisState := simapp.GenesisStateWithSingleValidator(t, app) - stateBytes, err := tmjson.Marshal(genesisState) - require.NoError(t, err) - - app.InitChain( - abcitypes.RequestInitChain{ - AppStateBytes: stateBytes, - ChainId: "test-chain-id", - }, + var accountKeeper authkeeper.AccountKeeper + app, err := simtestutil.SetupAtGenesis( + configurator.NewAppConfig( + configurator.ParamsModule(), + configurator.AuthModule(), + configurator.StakingModule(), + configurator.BankModule(), + configurator.GovModule(), + configurator.ConsensusModule(), + ), + &accountKeeper, ) + assert.NilError(t, err) ctx := app.BaseApp.NewContext(false, tmproto.Header{}) - acc := app.AccountKeeper.GetAccount(ctx, authtypes.NewModuleAddress(types.ModuleName)) - require.NotNil(t, acc) + acc := accountKeeper.GetAccount(ctx, authtypes.NewModuleAddress(types.ModuleName)) + assert.Assert(t, acc != nil) }