|
23 | 23 | from test_framework.util import (
|
24 | 24 | assert_equal,
|
25 | 25 | assert_is_hex_string,
|
26 |
| - assert_raises_rpc_error, |
27 | 26 | sha256sum_file,
|
28 | 27 | )
|
29 | 28 |
|
@@ -105,6 +104,18 @@ def test_upgradewallet(self, wallet, previous_version, requested_version=None, e
|
105 | 104 | )
|
106 | 105 | assert_equal(wallet.getwalletinfo()["walletversion"], new_version)
|
107 | 106 |
|
| 107 | + def test_upgradewallet_error(self, wallet, previous_version, requested_version, msg): |
| 108 | + assert_equal(wallet.getwalletinfo()["walletversion"], previous_version) |
| 109 | + assert_equal(wallet.upgradewallet(requested_version), |
| 110 | + { |
| 111 | + "wallet_name": "", |
| 112 | + "previous_version": previous_version, |
| 113 | + "current_version": previous_version, |
| 114 | + "error": msg, |
| 115 | + } |
| 116 | + ) |
| 117 | + assert_equal(wallet.getwalletinfo()["walletversion"], previous_version) |
| 118 | + |
108 | 119 | def run_test(self):
|
109 | 120 | self.nodes[0].generatetoaddress(101, self.nodes[0].getnewaddress())
|
110 | 121 | self.dumb_sync_blocks()
|
@@ -200,7 +211,7 @@ def copy_split_hd():
|
200 | 211 |
|
201 | 212 | self.log.info('Wallets cannot be downgraded')
|
202 | 213 | copy_non_hd()
|
203 |
| - assert_raises_rpc_error(-4, 'Cannot downgrade wallet', wallet.upgradewallet, 40000) |
| 214 | + self.test_upgradewallet_error(wallet, previous_version=60000, requested_version=40000, msg="Cannot downgrade wallet") |
204 | 215 | wallet.unloadwallet()
|
205 | 216 | assert_equal(before_checksum, sha256sum_file(node_master_wallet))
|
206 | 217 | node_master.loadwallet('')
|
@@ -237,12 +248,9 @@ def copy_split_hd():
|
237 | 248 | assert_equal('m/0\'/0\'/1\'', info['hdkeypath'])
|
238 | 249 |
|
239 | 250 | self.log.info('Cannot upgrade to HD Split, needs Pre Split Keypool')
|
240 |
| - assert_raises_rpc_error(-4, 'Cannot upgrade a non HD split wallet without upgrading to support pre split keypool', wallet.upgradewallet, 139900) |
241 |
| - assert_equal(130000, wallet.getwalletinfo()['walletversion']) |
242 |
| - assert_raises_rpc_error(-4, 'Cannot upgrade a non HD split wallet without upgrading to support pre split keypool', wallet.upgradewallet, 159900) |
243 |
| - assert_equal(130000, wallet.getwalletinfo()['walletversion']) |
244 |
| - assert_raises_rpc_error(-4, 'Cannot upgrade a non HD split wallet without upgrading to support pre split keypool', wallet.upgradewallet, 169899) |
245 |
| - assert_equal(130000, wallet.getwalletinfo()['walletversion']) |
| 251 | + for version in [139900, 159900, 169899]: |
| 252 | + self.test_upgradewallet_error(wallet, previous_version=130000, requested_version=version, |
| 253 | + msg="Cannot upgrade a non HD split wallet without upgrading to support pre split keypool. Please use version 169900 or no version specified.") |
246 | 254 |
|
247 | 255 | self.log.info('Upgrade HD to HD chain split')
|
248 | 256 | self.test_upgradewallet(wallet, previous_version=130000, requested_version=169900)
|
|
0 commit comments