Skip to content

Commit f087613

Browse files
JeremyRubinNicolasDorier
authored andcommitted
Add tests of listreceivedbyaddress address filtering
1 parent 8ee0812 commit f087613

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

test/functional/wallet_listreceivedby.py

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,44 @@ def run_test(self):
4545
assert_array_result(self.nodes[1].listreceivedbyaddress(11), {"address": addr}, {}, True)
4646

4747
# Empty Tx
48-
addr = self.nodes[1].getnewaddress()
48+
empty_addr = self.nodes[1].getnewaddress()
4949
assert_array_result(self.nodes[1].listreceivedbyaddress(0, True),
50-
{"address": addr},
51-
{"address": addr, "account": "", "amount": 0, "confirmations": 0, "txids": []})
50+
{"address": empty_addr},
51+
{"address": empty_addr, "account": "", "amount": 0, "confirmations": 0, "txids": []})
52+
53+
#Test Address filtering
54+
#Only on addr
55+
expected = {"address":addr, "account":"", "amount":Decimal("0.1"), "confirmations":10, "txids":[txid,]}
56+
res = self.nodes[1].listreceivedbyaddress(minconf=0, include_empty=True, include_watchonly=True, address_filter=addr)
57+
assert_array_result(res, {"address":addr}, expected)
58+
assert_equal(len(res), 1)
59+
#Error on invalid address
60+
assert_raises_rpc_error(-4, "address_filter parameter was invalid", self.nodes[1].listreceivedbyaddress, minconf=0, include_empty=True, include_watchonly=True, address_filter="bamboozling")
61+
#Another address receive money
62+
res = self.nodes[1].listreceivedbyaddress(0, True, True)
63+
assert_equal(len(res), 2) #Right now 2 entries
64+
other_addr = self.nodes[1].getnewaddress()
65+
txid2 = self.nodes[0].sendtoaddress(other_addr, 0.1)
66+
self.nodes[0].generate(1)
67+
self.sync_all()
68+
#Same test as above should still pass
69+
expected = {"address":addr, "account":"", "amount":Decimal("0.1"), "confirmations":11, "txids":[txid,]}
70+
res = self.nodes[1].listreceivedbyaddress(0, True, True, addr)
71+
assert_array_result(res, {"address":addr}, expected)
72+
assert_equal(len(res), 1)
73+
#Same test as above but with other_addr should still pass
74+
expected = {"address":other_addr, "account":"", "amount":Decimal("0.1"), "confirmations":1, "txids":[txid2,]}
75+
res = self.nodes[1].listreceivedbyaddress(0, True, True, other_addr)
76+
assert_array_result(res, {"address":other_addr}, expected)
77+
assert_equal(len(res), 1)
78+
#Should be two entries though without filter
79+
res = self.nodes[1].listreceivedbyaddress(0, True, True)
80+
assert_equal(len(res), 3) #Became 3 entries
81+
82+
#Not on random addr
83+
other_addr = self.nodes[0].getnewaddress() # note on node[0]! just a random addr
84+
res = self.nodes[1].listreceivedbyaddress(0, True, True, other_addr)
85+
assert_equal(len(res), 0)
5286

5387
self.log.info("getreceivedbyaddress Test")
5488

0 commit comments

Comments
 (0)