From cdcb51a9226821771ff23970cdc27811567391f9 Mon Sep 17 00:00:00 2001 From: Jonathan Gimeno Date: Fri, 17 Jul 2020 16:20:31 +0200 Subject: [PATCH] Merge PR #6750: Revert to allow to set DefaultNodeHome as a param in genutil CLI cmds --- simapp/simd/cmd/root.go | 7 ++-- testutil/ioutil.go | 2 +- x/genutil/client/cli/collect.go | 4 +-- x/genutil/client/cli/gentx.go | 4 +-- x/genutil/client/cli/init_test.go | 58 ++++++++++++++++++++++++------- 5 files changed, 54 insertions(+), 21 deletions(-) diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index b8f05b4958..eb56c02510 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -50,7 +50,8 @@ var ( WithCodec(encodingConfig.Amino). WithInput(os.Stdin). WithAccountRetriever(types.NewAccountRetriever(encodingConfig.Marshaler)). - WithBroadcastMode(flags.BroadcastBlock) + WithBroadcastMode(flags.BroadcastBlock). + WithHomeDir(simapp.DefaultNodeHome) ) // Execute executes the root command. @@ -74,9 +75,9 @@ func init() { rootCmd.AddCommand( genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}), + genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), genutilcli.MigrateGenesisCmd(), - genutilcli.GenTxCmd(simapp.ModuleBasics, banktypes.GenesisBalancesIterator{}), + genutilcli.GenTxCmd(simapp.ModuleBasics, banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), genutilcli.ValidateGenesisCmd(simapp.ModuleBasics), AddGenesisAccountCmd(), cli.NewCompletionCmd(rootCmd, true), diff --git a/testutil/ioutil.go b/testutil/ioutil.go index cdf92db245..0df67fd35d 100644 --- a/testutil/ioutil.go +++ b/testutil/ioutil.go @@ -16,7 +16,7 @@ import ( // Returns the directory path and a cleanup function. // nolint: errcheck func NewTestCaseDir(t testing.TB) (string, func()) { - dir, err := ioutil.TempDir("", t.Name()+"_") + dir, err := ioutil.TempDir("", strings.ReplaceAll(t.Name(), "/", "_")+"_") require.NoError(t, err) return dir, func() { os.RemoveAll(dir) } } diff --git a/x/genutil/client/cli/collect.go b/x/genutil/client/cli/collect.go index 2810c9e227..912f994a6d 100644 --- a/x/genutil/client/cli/collect.go +++ b/x/genutil/client/cli/collect.go @@ -18,7 +18,7 @@ import ( const flagGenTxDir = "gentx-dir" // CollectGenTxsCmd - return the cobra command to collect genesis transactions -func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator) *cobra.Command { +func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, defaultNodeHome string) *cobra.Command { cmd := &cobra.Command{ Use: "collect-gentxs", Short: "Collect genesis txs and output a genesis.json file", @@ -61,7 +61,7 @@ func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator) *cobra.Comma }, } - cmd.Flags().String(flags.FlagHome, "", "The application home directory") + cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") cmd.Flags().String(flagGenTxDir, "", "override default \"gentx\" directory from which collect and execute genesis transactions; default [--home]/config/gentx/") return cmd diff --git a/x/genutil/client/cli/gentx.go b/x/genutil/client/cli/gentx.go index f7ae4992d7..749defcd40 100644 --- a/x/genutil/client/cli/gentx.go +++ b/x/genutil/client/cli/gentx.go @@ -31,7 +31,7 @@ import ( ) // GenTxCmd builds the application's gentx command. -func GenTxCmd(mbm module.BasicManager, genBalIterator types.GenesisBalancesIterator) *cobra.Command { +func GenTxCmd(mbm module.BasicManager, genBalIterator types.GenesisBalancesIterator, defaultNodeHome string) *cobra.Command { ipDefault, _ := server.ExternalIP() fsCreateValidator, defaultsDesc := cli.CreateValidatorMsgFlagSet(ipDefault) @@ -189,7 +189,7 @@ $ %s gentx my-key-name --home=/path/to/home/dir --keyring-backend=os --chain-id= }, } - cmd.Flags().String(flags.FlagHome, "", "The application home directory") + cmd.Flags().String(flags.FlagHome, defaultNodeHome, "The application home directory") cmd.Flags().String(flags.FlagOutputDocument, "", "Write the genesis transaction JSON document to the given file instead of the default location") cmd.Flags().String(flags.FlagChainID, "", "The network chain ID") cmd.Flags().AddFlagSet(fsCreateValidator) diff --git a/x/genutil/client/cli/init_test.go b/x/genutil/client/cli/init_test.go index 79993c8c06..5c6990e220 100644 --- a/x/genutil/client/cli/init_test.go +++ b/x/genutil/client/cli/init_test.go @@ -42,24 +42,56 @@ func createDefaultTendermintConfig(rootDir string) (*tmcfg.Config, error) { } func TestInitCmd(t *testing.T) { - home, cleanup := testutil.NewTestCaseDir(t) - t.Cleanup(cleanup) + tests := []struct { + name string + flags func(dir string) []string + shouldErr bool + err error + }{ + { + name: "happy path", + flags: func(dir string) []string { + return []string{ + "appnode-test", + } + }, + shouldErr: false, - logger := log.NewNopLogger() - cfg, err := createDefaultTendermintConfig(home) - require.NoError(t, err) + err: nil, + }, + } - serverCtx := server.NewContext(viper.New(), cfg, logger) - clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()).WithHomeDir(home) + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + home, cleanup := testutil.NewTestCaseDir(t) + defer cleanup() - ctx := context.Background() - ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) - ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) + logger := log.NewNopLogger() + cfg, err := createDefaultTendermintConfig(home) + require.NoError(t, err) - cmd := InitCmd(testMbm, home) - cmd.SetArgs([]string{"appnode-test"}) + serverCtx := server.NewContext(viper.New(), cfg, logger) + clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()).WithHomeDir(home) + + ctx := context.Background() + ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) + ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) + + cmd := InitCmd(testMbm, home) + cmd.SetArgs( + tt.flags(home), + ) + + if tt.shouldErr { + err := cmd.ExecuteContext(ctx) + require.EqualError(t, err, tt.err.Error()) + } else { + require.NoError(t, cmd.ExecuteContext(ctx)) + } + }) + } - require.NoError(t, cmd.ExecuteContext(ctx)) } func setupClientHome(t *testing.T) func() {