Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_multiwallet.py
Show First 20 Lines • Show All 165 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
"Error: -salvagewallet is only allowed with a single wallet file") | "Error: -salvagewallet is only allowed with a single wallet file") | ||||
self.nodes[0].assert_start_raises_init_error( | self.nodes[0].assert_start_raises_init_error( | ||||
[ | [ | ||||
'-salvagewallet=1', | '-salvagewallet=1', | ||||
'-wallet=w1', | '-wallet=w1', | ||||
'-wallet=w2'], | '-wallet=w2'], | ||||
"Error: -salvagewallet is only allowed with a single wallet file") | "Error: -salvagewallet is only allowed with a single wallet file") | ||||
self.log.info("Do not allow -upgradewallet with multiwallet") | |||||
self.nodes[0].assert_start_raises_init_error( | |||||
[ | |||||
'-upgradewallet', | |||||
'-wallet=w1', | |||||
'-wallet=w2'], | |||||
"Error: -upgradewallet is only allowed with a single wallet file") | |||||
self.nodes[0].assert_start_raises_init_error( | |||||
[ | |||||
'-upgradewallet=1', | |||||
'-wallet=w1', | |||||
'-wallet=w2'], | |||||
"Error: -upgradewallet is only allowed with a single wallet file") | |||||
# if wallets/ doesn't exist, datadir should be the default wallet dir | # if wallets/ doesn't exist, datadir should be the default wallet dir | ||||
wallet_dir2 = data_dir('walletdir') | wallet_dir2 = data_dir('walletdir') | ||||
os.rename(wallet_dir(), wallet_dir2) | os.rename(wallet_dir(), wallet_dir2) | ||||
self.start_node(0, ['-wallet=w4', '-wallet=w5']) | self.start_node(0, ['-wallet=w4', '-wallet=w5']) | ||||
assert_equal(set(node.listwallets()), {"w4", "w5"}) | assert_equal(set(node.listwallets()), {"w4", "w5"}) | ||||
w5 = wallet("w5") | w5 = wallet("w5") | ||||
node.generatetoaddress(nblocks=1, address=w5.getnewaddress()) | node.generatetoaddress(nblocks=1, address=w5.getnewaddress()) | ||||
▲ Show 20 Lines • Show All 225 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
self.start_node(1) | self.start_node(1) | ||||
wallet = os.path.join(self.options.tmpdir, 'my_wallet') | wallet = os.path.join(self.options.tmpdir, 'my_wallet') | ||||
self.nodes[0].createwallet(wallet) | self.nodes[0].createwallet(wallet) | ||||
assert_raises_rpc_error(-4, "Error initializing wallet database environment", | assert_raises_rpc_error(-4, "Error initializing wallet database environment", | ||||
self.nodes[1].loadwallet, wallet) | self.nodes[1].loadwallet, wallet) | ||||
self.nodes[0].unloadwallet(wallet) | self.nodes[0].unloadwallet(wallet) | ||||
self.nodes[1].loadwallet(wallet) | self.nodes[1].loadwallet(wallet) | ||||
# Fail to load if wallet is downgraded | |||||
shutil.copytree( | |||||
os.path.join( | |||||
self.options.data_wallets_dir, | |||||
'high_minversion'), | |||||
wallet_dir('high_minversion')) | |||||
self.restart_node( | |||||
0, extra_args=[ | |||||
'-upgradewallet={}'.format(FEATURE_LATEST)]) | |||||
assert {'name': 'high_minversion'} in self.nodes[0].listwalletdir()[ | |||||
'wallets'] | |||||
self.log.info("Fail -upgradewallet that results in downgrade") | |||||
assert_raises_rpc_error( | |||||
-4, | |||||
'Wallet loading failed. Error loading {}: Wallet requires newer version of {}'.format( | |||||
wallet_dir('high_minversion', 'wallet.dat'), self.config['environment']['PACKAGE_NAME']), | |||||
lambda: self.nodes[0].loadwallet(filename='high_minversion'), | |||||
) | |||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
MultiWalletTest().main() | MultiWalletTest().main() |