URI: 
       tadd unit test for basic mpp - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 3fa1aed8cdc426ae4c929c5160e345e8826854ac
   DIR parent ca6ecd56f2568220143e92250796d557244e06a8
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Wed,  3 Mar 2021 12:52:52 +0100
       
       add unit test for basic mpp
       
       Diffstat:
         M electrum/tests/test_lnpeer.py       |      28 ++++++++++++++++++++++++++++
       
       1 file changed, 28 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/electrum/tests/test_lnpeer.py b/electrum/tests/test_lnpeer.py
       t@@ -717,6 +717,34 @@ class TestPeer(ElectrumTestCase):
                    run(f())
        
            @needs_test_with_all_chacha20_implementations
       +    def test_multipart_payment(self):
       +        graph = self.prepare_chans_and_peers_in_square()
       +        self.assertEqual(500_000_000_000, graph.chan_ab.balance(LOCAL))
       +        self.assertEqual(500_000_000_000, graph.chan_ac.balance(LOCAL))
       +        amount_to_pay = 600_000_000_000
       +        peers = graph.all_peers()
       +        async def pay():
       +            pay_req = await self.prepare_invoice(graph.w_d, include_routing_hints=True, amount_msat=amount_to_pay)
       +            result, log = await graph.w_a.pay_invoice(pay_req, attempts=1)
       +            if result:
       +                raise PaymentDone()
       +            else:
       +                raise NoPathFound()
       +        async def f():
       +            async with TaskGroup() as group:
       +                for peer in peers:
       +                    await group.spawn(peer._message_loop())
       +                    await group.spawn(peer.htlc_switch())
       +                await asyncio.sleep(0.2)
       +                await group.spawn(pay())
       +        self.assertFalse(graph.w_d.features.supports(LnFeatures.BASIC_MPP_OPT))
       +        with self.assertRaises(NoPathFound):
       +            run(f())
       +        graph.w_d.features |= LnFeatures.BASIC_MPP_OPT
       +        with self.assertRaises(PaymentDone):
       +            run(f())
       +
       +    @needs_test_with_all_chacha20_implementations
            def test_close(self):
                alice_channel, bob_channel = create_test_channels()
                p1, p2, w1, w2, _q1, _q2 = self.prepare_peers(alice_channel, bob_channel)