github.com/cosmos/cosmos-sdk@v0.50.10/x/genutil/client/testutil/helpers.go (about)

     1  package testutil
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	cmtcfg "github.com/cometbft/cometbft/config"
     8  	"github.com/spf13/viper"
     9  
    10  	"cosmossdk.io/log"
    11  
    12  	"github.com/cosmos/cosmos-sdk/client"
    13  	"github.com/cosmos/cosmos-sdk/client/flags"
    14  	"github.com/cosmos/cosmos-sdk/codec"
    15  	"github.com/cosmos/cosmos-sdk/server"
    16  	"github.com/cosmos/cosmos-sdk/testutil"
    17  	"github.com/cosmos/cosmos-sdk/types/module"
    18  	genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
    19  )
    20  
    21  func ExecInitCmd(testMbm module.BasicManager, home string, cdc codec.Codec) error {
    22  	logger := log.NewNopLogger()
    23  	cfg, err := CreateDefaultCometConfig(home)
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	cmd := genutilcli.InitCmd(testMbm, home)
    29  	serverCtx := server.NewContext(viper.New(), cfg, logger)
    30  	clientCtx := client.Context{}.WithCodec(cdc).WithHomeDir(home)
    31  
    32  	_, out := testutil.ApplyMockIO(cmd)
    33  	clientCtx = clientCtx.WithOutput(out)
    34  
    35  	ctx := context.Background()
    36  	ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
    37  	ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx)
    38  
    39  	cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", flags.FlagHome, home)})
    40  
    41  	return cmd.ExecuteContext(ctx)
    42  }
    43  
    44  func CreateDefaultCometConfig(rootDir string) (*cmtcfg.Config, error) {
    45  	conf := cmtcfg.DefaultConfig()
    46  	conf.SetRoot(rootDir)
    47  	cmtcfg.EnsureRoot(rootDir)
    48  
    49  	if err := conf.ValidateBasic(); err != nil {
    50  		return nil, fmt.Errorf("error in config file: %v", err)
    51  	}
    52  
    53  	return conf, nil
    54  }