From 80b8dab4be000193ec34364a1be80ccf812dba7b Mon Sep 17 00:00:00 2001 From: Ira Miller Date: Tue, 26 Jan 2021 09:42:50 -0700 Subject: [PATCH 1/2] restructure testnet config to better encapsulate encoder --- testutil/network.go | 62 ++++++++++++++++++++++ x/attribute/client/cli/cli_test.go | 25 +-------- x/attribute/client/rest/grpc_query_test.go | 30 ++--------- x/marker/client/cli/cli_test.go | 26 +-------- 4 files changed, 70 insertions(+), 73 deletions(-) create mode 100644 testutil/network.go diff --git a/testutil/network.go b/testutil/network.go new file mode 100644 index 000000000..451fd78f0 --- /dev/null +++ b/testutil/network.go @@ -0,0 +1,62 @@ +package testutil + +import ( + "fmt" + "time" + + tmrand "github.com/tendermint/tendermint/libs/rand" + dbm "github.com/tendermint/tm-db" + + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/crypto/hd" + "github.com/cosmos/cosmos-sdk/crypto/keyring" + servertypes "github.com/cosmos/cosmos-sdk/server/types" + sdksim "github.com/cosmos/cosmos-sdk/simapp" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + + "github.com/cosmos/cosmos-sdk/testutil/network" + sdk "github.com/cosmos/cosmos-sdk/types" + + provenanceapp "github.com/provenance-io/provenance/app" + "github.com/provenance-io/provenance/app/params" +) + +// NewAppConstructor returns a new provenanceapp AppConstructor +func NewAppConstructor(encodingCfg params.EncodingConfig) network.AppConstructor { + return func(val network.Validator) servertypes.Application { + return provenanceapp.New("", + val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0, + encodingCfg, + sdksim.EmptyAppOptions{}, + baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), + baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), + ) + } +} + +// DefaultTestNetworkConfig creates a network configuration for inproc testing +func DefaultTestNetworkConfig() network.Config { + encCfg := provenanceapp.MakeEncodingConfig() + return network.Config{ + Codec: encCfg.Marshaler, + TxConfig: encCfg.TxConfig, + LegacyAmino: encCfg.Amino, + InterfaceRegistry: encCfg.InterfaceRegistry, + AccountRetriever: authtypes.AccountRetriever{}, + AppConstructor: NewAppConstructor(encCfg), + GenesisState: provenanceapp.ModuleBasics.DefaultGenesis(encCfg.Marshaler), + TimeoutCommit: 2 * time.Second, + ChainID: "chain-" + tmrand.NewRand().Str(6), + NumValidators: 4, + BondDenom: sdk.DefaultBondDenom, // we use the SDK bond denom here, at least until the entire genesis is rewritten to match bond denom + MinGasPrices: fmt.Sprintf("0.000006%s", sdk.DefaultBondDenom), + AccountTokens: sdk.TokensFromConsensusPower(1000), + StakingTokens: sdk.TokensFromConsensusPower(500), + BondedTokens: sdk.TokensFromConsensusPower(100), + PruningStrategy: storetypes.PruningOptionNothing, + CleanupDir: true, + SigningAlgo: string(hd.Secp256k1Type), + KeyringOptions: []keyring.Option{}, + } +} diff --git a/x/attribute/client/cli/cli_test.go b/x/attribute/client/cli/cli_test.go index f37b94c1f..d2c4bb64a 100644 --- a/x/attribute/client/cli/cli_test.go +++ b/x/attribute/client/cli/cli_test.go @@ -10,23 +10,17 @@ import ( "github.com/stretchr/testify/suite" tmcli "github.com/tendermint/tendermint/libs/cli" - dbm "github.com/tendermint/tm-db" - "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client/flags" codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - sdksim "github.com/cosmos/cosmos-sdk/simapp" - storetypes "github.com/cosmos/cosmos-sdk/store/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" - "github.com/cosmos/cosmos-sdk/testutil/network" testnet "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" - simapp "github.com/provenance-io/provenance/app" + "github.com/provenance-io/provenance/testutil" "github.com/provenance-io/provenance/x/attribute/client/cli" attributetypes "github.com/provenance-io/provenance/x/attribute/types" @@ -51,22 +45,7 @@ func (s *IntegrationTestSuite) SetupSuite() { s.accountAddr = addr s.T().Log("setting up integration test suite") - encCfg := simapp.MakeEncodingConfig() - cfg := testnet.DefaultConfig() - cfg.InterfaceRegistry = encCfg.InterfaceRegistry - cfg.Codec = encCfg.Marshaler - cfg.TxConfig = encCfg.TxConfig - cfg.LegacyAmino = encCfg.Amino - - cfg.AppConstructor = func(val network.Validator) servertypes.Application { - return simapp.New("test", - val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0, - encCfg, - sdksim.EmptyAppOptions{}, - baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), - baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), - ) - } + cfg := testutil.DefaultTestNetworkConfig() genesisState := cfg.GenesisState cfg.NumValidators = 1 diff --git a/x/attribute/client/rest/grpc_query_test.go b/x/attribute/client/rest/grpc_query_test.go index c5c75caa7..8e217d468 100644 --- a/x/attribute/client/rest/grpc_query_test.go +++ b/x/attribute/client/rest/grpc_query_test.go @@ -6,21 +6,14 @@ import ( "github.com/stretchr/testify/suite" - dbm "github.com/tendermint/tm-db" - - "github.com/cosmos/cosmos-sdk/baseapp" codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - sdksim "github.com/cosmos/cosmos-sdk/simapp" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - "github.com/cosmos/cosmos-sdk/testutil" - "github.com/cosmos/cosmos-sdk/testutil/network" + sdktestutil "github.com/cosmos/cosmos-sdk/testutil" testnet "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - simapp "github.com/provenance-io/provenance/app" + "github.com/provenance-io/provenance/testutil" attributetypes "github.com/provenance-io/provenance/x/attribute/types" nametypes "github.com/provenance-io/provenance/x/name/types" @@ -48,22 +41,7 @@ func (s *IntegrationTestSuite) SetupSuite() { s.accountAddr = addr s.T().Log("setting up integration test suite") - encCfg := simapp.MakeEncodingConfig() - cfg := testnet.DefaultConfig() - cfg.InterfaceRegistry = encCfg.InterfaceRegistry - cfg.Codec = encCfg.Marshaler - cfg.TxConfig = encCfg.TxConfig - cfg.LegacyAmino = encCfg.Amino - - cfg.AppConstructor = func(val network.Validator) servertypes.Application { - return simapp.New("test", - val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0, - encCfg, - sdksim.EmptyAppOptions{}, - baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), - baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), - ) - } + cfg := testutil.DefaultTestNetworkConfig() genesisState := cfg.GenesisState cfg.NumValidators = 1 @@ -222,7 +200,7 @@ func (s *IntegrationTestSuite) TestGRPCQueries() { tc := tc s.Run(tc.name, func() { - resp, err := testutil.GetRequestWithHeaders(tc.url, tc.headers) + resp, err := sdktestutil.GetRequestWithHeaders(tc.url, tc.headers) s.Require().NoError(err) err = val.ClientCtx.JSONMarshaler.UnmarshalJSON(resp, tc.respType) diff --git a/x/marker/client/cli/cli_test.go b/x/marker/client/cli/cli_test.go index c2a728188..98ee52f5d 100644 --- a/x/marker/client/cli/cli_test.go +++ b/x/marker/client/cli/cli_test.go @@ -10,22 +10,15 @@ import ( "github.com/stretchr/testify/suite" tmcli "github.com/tendermint/tendermint/libs/cli" - dbm "github.com/tendermint/tm-db" - "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - sdksim "github.com/cosmos/cosmos-sdk/simapp" - storetypes "github.com/cosmos/cosmos-sdk/store/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" - "github.com/cosmos/cosmos-sdk/testutil/network" testnet "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" - - simapp "github.com/provenance-io/provenance/app" + "github.com/provenance-io/provenance/testutil" markercli "github.com/provenance-io/provenance/x/marker/client/cli" markertypes "github.com/provenance-io/provenance/x/marker/types" @@ -48,22 +41,7 @@ func (s *IntegrationTestSuite) SetupSuite() { s.accountAddr = addr s.T().Log("setting up integration test suite") - encCfg := simapp.MakeEncodingConfig() - cfg := testnet.DefaultConfig() - cfg.InterfaceRegistry = encCfg.InterfaceRegistry - cfg.Codec = encCfg.Marshaler - cfg.TxConfig = encCfg.TxConfig - cfg.LegacyAmino = encCfg.Amino - - cfg.AppConstructor = func(val network.Validator) servertypes.Application { - return simapp.New("test", - val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0, - encCfg, - sdksim.EmptyAppOptions{}, - baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), - baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), - ) - } + cfg := testutil.DefaultTestNetworkConfig() genesisState := cfg.GenesisState cfg.NumValidators = 1 From d6214885495f141c2163eb1218613ad606cc45ec Mon Sep 17 00:00:00 2001 From: Ira Miller Date: Tue, 26 Jan 2021 09:43:36 -0700 Subject: [PATCH 2/2] lint format --- x/marker/client/cli/cli_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/marker/client/cli/cli_test.go b/x/marker/client/cli/cli_test.go index 98ee52f5d..a1f0d8b88 100644 --- a/x/marker/client/cli/cli_test.go +++ b/x/marker/client/cli/cli_test.go @@ -18,6 +18,7 @@ import ( clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" testnet "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/provenance-io/provenance/testutil" markercli "github.com/provenance-io/provenance/x/marker/client/cli"