diff options
author | Andrew Chow <github@achow101.com> | 2022-12-21 17:28:54 -0500 |
---|---|---|
committer | Andrew Chow <github@achow101.com> | 2023-06-12 15:14:42 -0400 |
commit | a1e653828bc59351b2a0dd5a70f519e6b61199bc (patch) | |
tree | a45b0eb90bb4ed974c8f6fc38e331a28b5b99fd5 /test/functional/wallet_migration.py | |
parent | bdbe3fd76b4b9186503dc1926a2fa3f8178d00a5 (diff) |
test: Add test for migrating default wallet and plain file wallet
Diffstat (limited to 'test/functional/wallet_migration.py')
-rwxr-xr-x | test/functional/wallet_migration.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/functional/wallet_migration.py b/test/functional/wallet_migration.py index 7c2959bb89..301597e56b 100755 --- a/test/functional/wallet_migration.py +++ b/test/functional/wallet_migration.py @@ -6,6 +6,7 @@ import os import random +import shutil from test_framework.descriptors import descsum_create from test_framework.test_framework import BitcoinTestFramework from test_framework.util import ( @@ -470,6 +471,40 @@ class WalletMigrationTest(BitcoinTestFramework): assert_equal(bals, wallet.getbalances()) + def test_default_wallet(self): + self.log.info("Test migration of the wallet named as the empty string") + wallet = self.create_legacy_wallet("") + + wallet.migratewallet() + info = wallet.getwalletinfo() + assert_equal(info["descriptors"], True) + assert_equal(info["format"], "sqlite") + + def test_direct_file(self): + self.log.info("Test migration of a wallet that is not in a wallet directory") + wallet = self.create_legacy_wallet("plainfile") + wallet.unloadwallet() + + wallets_dir = os.path.join(self.nodes[0].datadir, "regtest", "wallets") + wallet_path = os.path.join(wallets_dir, "plainfile") + wallet_dat_path = os.path.join(wallet_path, "wallet.dat") + shutil.copyfile(wallet_dat_path, os.path.join(wallets_dir, "plainfile.bak")) + shutil.rmtree(wallet_path) + shutil.move(os.path.join(wallets_dir, "plainfile.bak"), wallet_path) + + self.nodes[0].loadwallet("plainfile") + info = wallet.getwalletinfo() + assert_equal(info["descriptors"], False) + assert_equal(info["format"], "bdb") + + wallet.migratewallet() + info = wallet.getwalletinfo() + assert_equal(info["descriptors"], True) + assert_equal(info["format"], "sqlite") + + assert os.path.isdir(wallet_path) + assert os.path.isfile(wallet_dat_path) + def run_test(self): self.generate(self.nodes[0], 101) @@ -482,6 +517,8 @@ class WalletMigrationTest(BitcoinTestFramework): self.test_encrypted() self.test_unloaded() self.test_unloaded_by_path() + self.test_default_wallet() + self.test_direct_file() if __name__ == '__main__': WalletMigrationTest().main() |