feat(testutil): adding DefaultContextWithKeys test helper (backport #17216) (#17217)

Co-authored-by: Damian Nolan <damiannolan@gmail.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot]
2023-07-31 12:47:50 +00:00
committed by GitHub
co-authored by Damian Nolan Julien Robert
parent 75cad9d952
commit fac64cd5d5
2 changed files with 31 additions and 0 deletions
+30
View File
@@ -31,6 +31,36 @@ func DefaultContext(key, tkey storetypes.StoreKey) sdk.Context {
return ctx
}
// DefaultContextWithKeys creates a sdk.Context with a fresh MemDB, mounting the providing keys for usage in the multistore.
// This function is intended to be used for testing purposes only.
func DefaultContextWithKeys(
keys map[string]*storetypes.KVStoreKey,
transKeys map[string]*storetypes.TransientStoreKey,
memKeys map[string]*storetypes.MemoryStoreKey,
) sdk.Context {
db := dbm.NewMemDB()
cms := store.NewCommitMultiStore(db, log.NewNopLogger(), metrics.NewNoOpMetrics())
for _, key := range keys {
cms.MountStoreWithDB(key, storetypes.StoreTypeIAVL, db)
}
for _, tKey := range transKeys {
cms.MountStoreWithDB(tKey, storetypes.StoreTypeTransient, db)
}
for _, memkey := range memKeys {
cms.MountStoreWithDB(memkey, storetypes.StoreTypeMemory, db)
}
err := cms.LoadLatestVersion()
if err != nil {
panic(err)
}
return sdk.NewContext(cms, cmtproto.Header{}, false, log.NewNopLogger())
}
type TestContext struct {
Ctx sdk.Context
DB *dbm.MemDB