[tests] don't override __init__() in individual tests
[bitcoinplatinum.git] / test / functional / wallet-encryption.py
blobf63bb2ea5e1c984be6a48d4a5b87642c2f8909e3
1 #!/usr/bin/env python3
2 # Copyright (c) 2016 The Bitcoin Core developers
3 # Distributed under the MIT software license, see the accompanying
4 # file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 """Test Wallet encryption"""
7 import time
9 from test_framework.test_framework import BitcoinTestFramework, BITCOIND_PROC_WAIT_TIMEOUT
10 from test_framework.util import (
11 assert_equal,
12 assert_raises_jsonrpc,
15 class WalletEncryptionTest(BitcoinTestFramework):
16 def set_test_params(self):
17 self.setup_clean_chain = True
18 self.num_nodes = 1
20 def run_test(self):
21 passphrase = "WalletPassphrase"
22 passphrase2 = "SecondWalletPassphrase"
24 # Make sure the wallet isn't encrypted first
25 address = self.nodes[0].getnewaddress()
26 privkey = self.nodes[0].dumpprivkey(address)
27 assert_equal(privkey[:1], "c")
28 assert_equal(len(privkey), 52)
30 # Encrypt the wallet
31 self.nodes[0].node_encrypt_wallet(passphrase)
32 self.start_node(0)
34 # Test that the wallet is encrypted
35 assert_raises_jsonrpc(-13, "Please enter the wallet passphrase with walletpassphrase first", self.nodes[0].dumpprivkey, address)
37 # Check that walletpassphrase works
38 self.nodes[0].walletpassphrase(passphrase, 2)
39 assert_equal(privkey, self.nodes[0].dumpprivkey(address))
41 # Check that the timeout is right
42 time.sleep(2)
43 assert_raises_jsonrpc(-13, "Please enter the wallet passphrase with walletpassphrase first", self.nodes[0].dumpprivkey, address)
45 # Test wrong passphrase
46 assert_raises_jsonrpc(-14, "wallet passphrase entered was incorrect", self.nodes[0].walletpassphrase, passphrase + "wrong", 10)
48 # Test walletlock
49 self.nodes[0].walletpassphrase(passphrase, 84600)
50 assert_equal(privkey, self.nodes[0].dumpprivkey(address))
51 self.nodes[0].walletlock()
52 assert_raises_jsonrpc(-13, "Please enter the wallet passphrase with walletpassphrase first", self.nodes[0].dumpprivkey, address)
54 # Test passphrase changes
55 self.nodes[0].walletpassphrasechange(passphrase, passphrase2)
56 assert_raises_jsonrpc(-14, "wallet passphrase entered was incorrect", self.nodes[0].walletpassphrase, passphrase, 10)
57 self.nodes[0].walletpassphrase(passphrase2, 10)
58 assert_equal(privkey, self.nodes[0].dumpprivkey(address))
60 if __name__ == '__main__':
61 WalletEncryptionTest().main()