From 586407b769d2f460739c17fd2fd5d4d2c8c3ec19 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Sun, 3 Apr 2022 15:55:24 +0930 Subject: [PATCH] pytest: test that deduplication for `bolt11` works as expected. Signed-off-by: Rusty Russell --- tests/test_pay.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/test_pay.py b/tests/test_pay.py index 67253820560a..6f41ad72e71e 100644 --- a/tests/test_pay.py +++ b/tests/test_pay.py @@ -3730,6 +3730,24 @@ def test_mpp_presplit(node_factory): assert(inv['msatoshi'] == inv['msatoshi_received']) + # Make sure that bolt11 isn't duplicated for every part + bolt11s = 0 + count = 0 + for p in l1.rpc.listsendpays()['payments']: + if 'bolt11' in p: + bolt11s += 1 + count += 1 + + # You were supposed to mpp! + assert count > 1 + # Not every one should have the bolt11 string + assert bolt11s < count + # In fact, only one should + assert bolt11s == 1 + + # But listpays() gathers it: + assert only_one(l1.rpc.listpays()['pays'])['bolt11'] == inv['bolt11'] + def test_mpp_adaptive(node_factory, bitcoind): """We have two paths, both too small on their own, let's combine them. @@ -3799,6 +3817,19 @@ def all_htlcs(n): pprint(p) pprint(l1.rpc.paystatus(inv)) + # Make sure that bolt11 isn't duplicated for every part + bolt11s = 0 + count = 0 + for p in l1.rpc.listsendpays()['payments']: + if 'bolt11' in p: + bolt11s += 1 + count += 1 + + # You were supposed to mpp! + assert count > 1 + # Not every one should have the bolt11 string + assert bolt11s < count + # listpays() shows bolt11 string assert 'bolt11' in only_one(l1.rpc.listpays()['pays'])