diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py --- a/test/functional/test_runner.py +++ b/test/functional/test_runner.py @@ -114,6 +114,7 @@ "wallet_avoidreuse.py": [["--descriptors"]], "wallet_balance.py": [["--descriptors"]], # FIXME: "wallet_basic.py": [["--descriptors"]], + "wallet_backup.py": [["--descriptors"]], "wallet_createwallet.py": [["--usecli"], ["--descriptors"]], "wallet_encryption.py": [["--descriptors"]], "wallet_hd.py": [["--descriptors"]], diff --git a/test/functional/wallet_backup.py b/test/functional/wallet_backup.py --- a/test/functional/wallet_backup.py +++ b/test/functional/wallet_backup.py @@ -137,16 +137,18 @@ self.log.info("Backing up") self.nodes[0].backupwallet(os.path.join( self.nodes[0].datadir, 'wallet.bak')) - self.nodes[0].dumpwallet(os.path.join( - self.nodes[0].datadir, 'wallet.dump')) self.nodes[1].backupwallet(os.path.join( self.nodes[1].datadir, 'wallet.bak')) - self.nodes[1].dumpwallet(os.path.join( - self.nodes[1].datadir, 'wallet.dump')) self.nodes[2].backupwallet(os.path.join( self.nodes[2].datadir, 'wallet.bak')) - self.nodes[2].dumpwallet(os.path.join( - self.nodes[2].datadir, 'wallet.dump')) + + if not self.options.descriptors: + self.nodes[0].dumpwallet( + os.path.join(self.nodes[0].datadir, 'wallet.dump')) + self.nodes[1].dumpwallet( + os.path.join(self.nodes[1].datadir, 'wallet.dump')) + self.nodes[2].dumpwallet( + os.path.join(self.nodes[2].datadir, 'wallet.dump')) self.log.info("More transactions") for _ in range(5): @@ -204,37 +206,38 @@ assert_equal(self.nodes[1].getbalance(), balance1) assert_equal(self.nodes[2].getbalance(), balance2) - self.log.info("Restoring using dumped wallet") - self.stop_three() - self.erase_three() - - # start node2 with no chain - shutil.rmtree( - os.path.join( - self.nodes[2].datadir, - self.chain, - 'blocks')) - shutil.rmtree(os.path.join( - self.nodes[2].datadir, self.chain, 'chainstate')) - - self.start_three() - - assert_equal(self.nodes[0].getbalance(), 0) - assert_equal(self.nodes[1].getbalance(), 0) - assert_equal(self.nodes[2].getbalance(), 0) - - self.nodes[0].importwallet(os.path.join( - self.nodes[0].datadir, 'wallet.dump')) - self.nodes[1].importwallet(os.path.join( - self.nodes[1].datadir, 'wallet.dump')) - self.nodes[2].importwallet(os.path.join( - self.nodes[2].datadir, 'wallet.dump')) - - self.sync_blocks() - - assert_equal(self.nodes[0].getbalance(), balance0) - assert_equal(self.nodes[1].getbalance(), balance1) - assert_equal(self.nodes[2].getbalance(), balance2) + if not self.options.descriptors: + self.log.info("Restoring using dumped wallet") + self.stop_three() + self.erase_three() + + # start node2 with no chain + shutil.rmtree( + os.path.join( + self.nodes[2].datadir, + self.chain, + 'blocks')) + shutil.rmtree(os.path.join( + self.nodes[2].datadir, self.chain, 'chainstate')) + + self.start_three() + + assert_equal(self.nodes[0].getbalance(), 0) + assert_equal(self.nodes[1].getbalance(), 0) + assert_equal(self.nodes[2].getbalance(), 0) + + self.nodes[0].importwallet(os.path.join( + self.nodes[0].datadir, 'wallet.dump')) + self.nodes[1].importwallet(os.path.join( + self.nodes[1].datadir, 'wallet.dump')) + self.nodes[2].importwallet(os.path.join( + self.nodes[2].datadir, 'wallet.dump')) + + self.sync_blocks() + + assert_equal(self.nodes[0].getbalance(), balance0) + assert_equal(self.nodes[1].getbalance(), balance1) + assert_equal(self.nodes[2].getbalance(), balance2) # Backup to source wallet file must fail sourcePaths = [