Changeset View
Changeset View
Standalone View
Standalone View
test/functional/wallet_listreceivedby.py
Show All 12 Lines | from test_framework.util import ( | ||||
assert_raises_rpc_error, | assert_raises_rpc_error, | ||||
sync_blocks, | sync_blocks, | ||||
) | ) | ||||
class ReceivedByTest(BitcoinTestFramework): | class ReceivedByTest(BitcoinTestFramework): | ||||
def set_test_params(self): | def set_test_params(self): | ||||
self.num_nodes = 2 | self.num_nodes = 2 | ||||
self.extra_args = [['-deprecatedrpc=accounts']] * 2 | |||||
def import_deterministic_coinbase_privkeys(self): | def import_deterministic_coinbase_privkeys(self): | ||||
assert_equal(0, len(self.nodes[1].listreceivedbyaddress( | assert_equal(0, len(self.nodes[1].listreceivedbyaddress( | ||||
minconf=0, include_empty=True, include_watchonly=True))) | minconf=0, include_empty=True, include_watchonly=True))) | ||||
super().import_deterministic_coinbase_privkeys() | super().import_deterministic_coinbase_privkeys() | ||||
self.num_cb_reward_addresses = len(self.nodes[1].listreceivedbyaddress( | self.num_cb_reward_addresses = len(self.nodes[1].listreceivedbyaddress( | ||||
minconf=0, include_empty=True, include_watchonly=True)) | minconf=0, include_empty=True, include_watchonly=True)) | ||||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | def run_test(self): | ||||
# Trying to getreceivedby for an address the wallet doesn't own should return an error | # Trying to getreceivedby for an address the wallet doesn't own should return an error | ||||
assert_raises_rpc_error(-4, "Address not found in wallet", | assert_raises_rpc_error(-4, "Address not found in wallet", | ||||
self.nodes[0].getreceivedbyaddress, addr) | self.nodes[0].getreceivedbyaddress, addr) | ||||
self.log.info("listreceivedbylabel + getreceivedbylabel Test") | self.log.info("listreceivedbylabel + getreceivedbylabel Test") | ||||
# set pre-state | # set pre-state | ||||
label = '' | |||||
addrArr = self.nodes[1].getnewaddress() | addrArr = self.nodes[1].getnewaddress() | ||||
label = self.nodes[1].getaccount(addrArr) | assert_equal(self.nodes[1].getaddressinfo(addrArr)['label'], label) | ||||
received_by_label_json = [ | received_by_label_json = [ | ||||
r for r in self.nodes[1].listreceivedbylabel() if r["label"] == label][0] | r for r in self.nodes[1].listreceivedbylabel() if r["label"] == label][0] | ||||
balance_by_label = self.nodes[1].getreceivedbylabel(label) | balance_by_label = self.nodes[1].getreceivedbylabel(label) | ||||
txid = self.nodes[0].sendtoaddress(addr, 0.1) | txid = self.nodes[0].sendtoaddress(addr, 0.1) | ||||
self.sync_all() | self.sync_all() | ||||
# listreceivedbylabel should return received_by_label_json because of 0 confirmations | # listreceivedbylabel should return received_by_label_json because of 0 confirmations | ||||
Show All 12 Lines | def run_test(self): | ||||
{"label": label}, | {"label": label}, | ||||
{"label": received_by_label_json["label"], "amount": (received_by_label_json["amount"] + Decimal("0.1"))}) | {"label": received_by_label_json["label"], "amount": (received_by_label_json["amount"] + Decimal("0.1"))}) | ||||
# getreceivedbylabel should return updated receive total | # getreceivedbylabel should return updated receive total | ||||
balance = self.nodes[1].getreceivedbylabel(label) | balance = self.nodes[1].getreceivedbylabel(label) | ||||
assert_equal(balance, balance_by_label + Decimal("0.1")) | assert_equal(balance, balance_by_label + Decimal("0.1")) | ||||
# Create a new label named "mynewlabel" that has a 0 balance | # Create a new label named "mynewlabel" that has a 0 balance | ||||
self.nodes[1].getlabeladdress(label="mynewlabel", force=True) | address = self.nodes[1].getnewaddress() | ||||
self.nodes[1].setlabel(address, "mynewlabel") | |||||
received_by_label_json = [r for r in self.nodes[1].listreceivedbylabel( | received_by_label_json = [r for r in self.nodes[1].listreceivedbylabel( | ||||
0, True) if r["label"] == "mynewlabel"][0] | 0, True) if r["label"] == "mynewlabel"][0] | ||||
# Test includeempty of listreceivedbylabel | # Test includeempty of listreceivedbylabel | ||||
assert_equal(received_by_label_json["amount"], Decimal("0.0")) | assert_equal(received_by_label_json["amount"], Decimal("0.0")) | ||||
# Test getreceivedbylabel for 0 amount labels | # Test getreceivedbylabel for 0 amount labels | ||||
balance = self.nodes[1].getreceivedbylabel("mynewlabel") | balance = self.nodes[1].getreceivedbylabel("mynewlabel") | ||||
assert_equal(balance, Decimal("0.0")) | assert_equal(balance, Decimal("0.0")) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
ReceivedByTest().main() | ReceivedByTest().main() |