def METHOD_NAME(self):
    wallet_unenc_dump = os.path.join(self.nodes[0].datadir, "wallet.unencrypted.dump")
    wallet_enc_dump = os.path.join(self.nodes[0].datadir, "wallet.encrypted.dump")
    # generate 20 addresses to compare against the dump
    # but since we add a p2sh-p2wpkh address for the first pubkey in the
    # wallet, we will expect 21 addresses in the dump
    test_addr_count = 20
    addrs = []
    for i in range(0,test_addr_count):
        addr = self.nodes[0].getnewaddress()
        vaddr= self.nodes[0].getaddressinfo(addr) #required to get hd keypath
        addrs.append(vaddr)
    # Should be a no-op:
    self.nodes[0].keypoolrefill()
    # Test scripts dump by adding a P2SH witness and a 1-of-1 multisig address
    witness_addr = self.nodes[0].addwitnessaddress(addrs[0]["address"], True)
    multisig_addr = self.nodes[0].addmultisigaddress(1, [addrs[1]["address"]])["address"]
    script_addrs = [witness_addr, multisig_addr]
    # dump unencrypted wallet
    result = self.nodes[0].dumpwallet(wallet_unenc_dump)
    assert_equal(result['filename'], wallet_unenc_dump)
    found_addr, found_script_addr, found_addr_chg, found_addr_rsv, hd_master_addr_unenc, witness_addr_ret = \
        read_dump(wallet_unenc_dump, addrs, script_addrs, None)
    assert_equal(found_addr, test_addr_count)  # all keys must be in the dump
    assert_equal(found_script_addr, 2)  # all scripts must be in the dump
    assert_equal(found_addr_chg, 50)  # 50 blocks where mined
    assert_equal(found_addr_rsv, 90*2) # 90 keys plus 100% internal keys
    assert_equal(witness_addr_ret, witness_addr) # p2sh-p2wsh address added to the first key
    #encrypt wallet, restart, unlock and dump
    self.nodes[0].node_encrypt_wallet('test')
    self.start_node(0)
    self.nodes[0].walletpassphrase('test', 10)
    # Should be a no-op:
    self.nodes[0].keypoolrefill()
    self.nodes[0].dumpwallet(wallet_enc_dump)
    found_addr, found_script_addr, found_addr_chg, found_addr_rsv, _, witness_addr_ret = \
        read_dump(wallet_enc_dump, addrs, script_addrs, hd_master_addr_unenc)
    assert_equal(found_addr, test_addr_count)
    assert_equal(found_script_addr, 2)
    assert_equal(found_addr_chg, 90*2 + 50)  # old reserve keys are marked as change now
    assert_equal(found_addr_rsv, 90*2)
    assert_equal(witness_addr_ret, witness_addr)
    # Overwriting should fail
    assert_raises_rpc_error(-8, "already exists", lambda: self.nodes[0].dumpwallet(wallet_enc_dump))
    # Restart node with new wallet, and test importwallet
    self.stop_node(0)
    self.start_node(0, ['-wallet=w2'])
    # Make sure the address is not IsMine before import
    result = self.nodes[0].getaddressinfo(multisig_addr)
    assert(result['ismine'] == False)
    self.nodes[0].importwallet(wallet_unenc_dump)
    # Now check IsMine is true
    result = self.nodes[0].getaddressinfo(multisig_addr)
    assert(result['ismine'] == True)