From c1e7c14c46269eeb43d68c0d6f9e22757abbe990 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 4 Apr 2022 12:26:54 +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 672538205..6f41ad72e 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 test_mpp_adaptive(node_factory, bitcoind): 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'])