Changeset View
Changeset View
Standalone View
Standalone View
test/functional/walletbackup.py
Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | def start_three(self): | ||||
connect_nodes(self.nodes[2], self.nodes[0]) | connect_nodes(self.nodes[2], self.nodes[0]) | ||||
def stop_three(self): | def stop_three(self): | ||||
self.stop_node(0) | self.stop_node(0) | ||||
self.stop_node(1) | self.stop_node(1) | ||||
self.stop_node(2) | self.stop_node(2) | ||||
def erase_three(self): | def erase_three(self): | ||||
os.remove(self.options.tmpdir + "/node0/regtest/wallet.dat") | os.remove(self.options.tmpdir + "/node0/regtest/wallets/wallet.dat") | ||||
os.remove(self.options.tmpdir + "/node1/regtest/wallet.dat") | os.remove(self.options.tmpdir + "/node1/regtest/wallets/wallet.dat") | ||||
os.remove(self.options.tmpdir + "/node2/regtest/wallet.dat") | os.remove(self.options.tmpdir + "/node2/regtest/wallets/wallet.dat") | ||||
def run_test(self): | def run_test(self): | ||||
self.log.info("Generating initial blockchain") | self.log.info("Generating initial blockchain") | ||||
self.nodes[0].generate(1) | self.nodes[0].generate(1) | ||||
sync_blocks(self.nodes) | sync_blocks(self.nodes) | ||||
self.nodes[1].generate(1) | self.nodes[1].generate(1) | ||||
sync_blocks(self.nodes) | sync_blocks(self.nodes) | ||||
self.nodes[2].generate(1) | self.nodes[2].generate(1) | ||||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
self.erase_three() | self.erase_three() | ||||
# Start node2 with no chain | # Start node2 with no chain | ||||
shutil.rmtree(self.options.tmpdir + "/node2/regtest/blocks") | shutil.rmtree(self.options.tmpdir + "/node2/regtest/blocks") | ||||
shutil.rmtree(self.options.tmpdir + "/node2/regtest/chainstate") | shutil.rmtree(self.options.tmpdir + "/node2/regtest/chainstate") | ||||
# Restore wallets from backup | # Restore wallets from backup | ||||
shutil.copyfile(tmpdir + "/node0/wallet.bak", | shutil.copyfile(tmpdir + "/node0/wallet.bak", | ||||
tmpdir + "/node0/regtest/wallet.dat") | tmpdir + "/node0/regtest/wallets/wallet.dat") | ||||
shutil.copyfile(tmpdir + "/node1/wallet.bak", | shutil.copyfile(tmpdir + "/node1/wallet.bak", | ||||
tmpdir + "/node1/regtest/wallet.dat") | tmpdir + "/node1/regtest/wallets/wallet.dat") | ||||
shutil.copyfile(tmpdir + "/node2/wallet.bak", | shutil.copyfile(tmpdir + "/node2/wallet.bak", | ||||
tmpdir + "/node2/regtest/wallet.dat") | tmpdir + "/node2/regtest/wallets/wallet.dat") | ||||
self.log.info("Re-starting nodes") | self.log.info("Re-starting nodes") | ||||
self.start_three() | self.start_three() | ||||
sync_blocks(self.nodes) | sync_blocks(self.nodes) | ||||
assert_equal(self.nodes[0].getbalance(), balance0) | assert_equal(self.nodes[0].getbalance(), balance0) | ||||
assert_equal(self.nodes[1].getbalance(), balance1) | assert_equal(self.nodes[1].getbalance(), balance1) | ||||
assert_equal(self.nodes[2].getbalance(), balance2) | assert_equal(self.nodes[2].getbalance(), balance2) | ||||
Show All 19 Lines | def run_test(self): | ||||
sync_blocks(self.nodes) | sync_blocks(self.nodes) | ||||
assert_equal(self.nodes[0].getbalance(), balance0) | assert_equal(self.nodes[0].getbalance(), balance0) | ||||
assert_equal(self.nodes[1].getbalance(), balance1) | assert_equal(self.nodes[1].getbalance(), balance1) | ||||
assert_equal(self.nodes[2].getbalance(), balance2) | assert_equal(self.nodes[2].getbalance(), balance2) | ||||
# Backup to source wallet file must fail | # Backup to source wallet file must fail | ||||
sourcePaths = [ | sourcePaths = [ | ||||
tmpdir + "/node0/regtest/wallet.dat", | tmpdir + "/node0/regtest/wallets/wallet.dat", | ||||
tmpdir + "/node0/./regtest/wallet.dat", | tmpdir + "/node0/./regtest/wallets/wallet.dat", | ||||
tmpdir + "/node0/regtest/", | tmpdir + "/node0/regtest/wallets/", | ||||
tmpdir + "/node0/regtest"] | tmpdir + "/node0/regtest/wallets"] | ||||
for sourcePath in sourcePaths: | for sourcePath in sourcePaths: | ||||
assert_raises_rpc_error(-4, "backup failed", | assert_raises_rpc_error(-4, "backup failed", | ||||
self.nodes[0].backupwallet, sourcePath) | self.nodes[0].backupwallet, sourcePath) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
WalletBackupTest().main() | WalletBackupTest().main() |