diff options
author | MeshCollider <dobsonsa68@gmail.com> | 2017-10-12 22:04:46 +1300 |
---|---|---|
committer | MeshCollider <dobsonsa68@gmail.com> | 2017-11-18 00:50:59 +1300 |
commit | 8263f6a5ac3f3af102a2819b7e179b00db7e0437 (patch) | |
tree | 2d08c4f8eeed52a2c1101d0fe1c16556d6da2b73 /test/functional/multiwallet.py | |
parent | 9587a9c12b5d54263787a23c75f570db368318c1 (diff) | |
download | bitcoin-8263f6a5ac3f3af102a2819b7e179b00db7e0437.tar.xz |
Create walletdir if datadir doesn't exist and fix tests
Diffstat (limited to 'test/functional/multiwallet.py')
-rwxr-xr-x | test/functional/multiwallet.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/test/functional/multiwallet.py b/test/functional/multiwallet.py index 2f30d9f1ad..4a721d1109 100755 --- a/test/functional/multiwallet.py +++ b/test/functional/multiwallet.py @@ -27,28 +27,37 @@ class MultiWalletTest(BitcoinTestFramework): self.assert_start_raises_init_error(0, ['-wallet=w1', '-wallet=w1'], 'Error loading wallet w1. Duplicate -wallet filename specified.') # should not initialize if wallet file is a directory - os.mkdir(os.path.join(self.options.tmpdir, 'node0', 'regtest', 'w11')) + wallet_dir = os.path.join(self.options.tmpdir, 'node0', 'regtest', 'wallets') + os.mkdir(os.path.join(wallet_dir, 'w11')) self.assert_start_raises_init_error(0, ['-wallet=w11'], 'Error loading wallet w11. -wallet filename must be a regular file.') # should not initialize if one wallet is a copy of another - shutil.copyfile(os.path.join(self.options.tmpdir, 'node0', 'regtest', 'w2'), - os.path.join(self.options.tmpdir, 'node0', 'regtest', 'w22')) + shutil.copyfile(os.path.join(wallet_dir, 'w2'), os.path.join(wallet_dir, 'w22')) self.assert_start_raises_init_error(0, ['-wallet=w2', '-wallet=w22'], 'duplicates fileid') # should not initialize if wallet file is a symlink - os.symlink(os.path.join(self.options.tmpdir, 'node0', 'regtest', 'w1'), os.path.join(self.options.tmpdir, 'node0', 'regtest', 'w12')) + os.symlink(os.path.join(wallet_dir, 'w1'), os.path.join(wallet_dir, 'w12')) self.assert_start_raises_init_error(0, ['-wallet=w12'], 'Error loading wallet w12. -wallet filename must be a regular file.') # should not initialize if the specified walletdir does not exist self.assert_start_raises_init_error(0, ['-walletdir=bad'], 'Error: Specified wallet directory "bad" does not exist.') - # running the node with specified walletdir should only have the default wallet in it - os.mkdir(os.path.join(self.options.tmpdir, 'node0', 'regtest', 'walletdir')) - self.start_node(0, ['-wallet=w4', '-wallet=w5', '-walletdir=' + os.path.join(self.options.tmpdir, 'node0', 'regtest', 'walletdir')]) + # if wallets/ doesn't exist, datadir should be the default wallet dir + wallet_dir2 = os.path.join(self.options.tmpdir, 'node0', 'regtest', 'walletdir') + os.rename(wallet_dir, wallet_dir2) + self.start_node(0, ['-wallet=w4', '-wallet=w5']) + assert_equal(set(self.nodes[0].listwallets()), {"w4", "w5"}) + w5 = self.nodes[0].get_wallet_rpc("w5") + w5.generate(1) + self.stop_node(0) + + # now if wallets/ exists again, but the rootdir is specified as the walletdir, w4 and w5 should still be loaded + os.rename(wallet_dir2, wallet_dir) + self.start_node(0, ['-wallet=w4', '-wallet=w5', '-walletdir=' + os.path.join(self.options.tmpdir, 'node0', 'regtest')]) assert_equal(set(self.nodes[0].listwallets()), {"w4", "w5"}) w5 = self.nodes[0].get_wallet_rpc("w5") w5_info = w5.getwalletinfo() - assert_equal(w5_info['immature_balance'], 0) + assert_equal(w5_info['immature_balance'], 50) self.stop_node(0) |