MCPcopy Create free account
hub / github.com/ElementsProject/lightning / test_layer_persistence

Function test_layer_persistence

tests/test_askrene.py:566–639  ·  view source on GitHub ↗

Test persistence of layers across restart

(node_factory)

Source from the content-addressed store, hash-verified

564
565
566def test_layer_persistence(node_factory):
567 """Test persistence of layers across restart"""
568 l1, l2 = node_factory.line_graph(2, wait_for_announce=True,
569 opts={'disable-plugin': 'cln-xpay'})
570
571 assert l1.rpc.askrene_listlayers() == {'layers': []}
572 with pytest.raises(RpcError, match="Unknown layer"):
573 l1.rpc.askrene_listlayers('test_layer_persistence')
574
575 l1.rpc.askrene_create_layer(layer='test_layer_persistence', persistent=True)
576 expect = {'layer': 'test_layer_persistence',
577 'persistent': True,
578 'disabled_nodes': [],
579 'created_channels': [],
580 'channel_updates': [],
581 'constraints': [],
582 'biases': [],
583 'node_biases': []}
584 assert l1.rpc.askrene_listlayers('test_layer_persistence') == {'layers': [expect]}
585
586 # Restart, (empty layer) should still be there.
587 l1.restart()
588
589 assert l1.rpc.askrene_listlayers('test_layer_persistence') == {'layers': [expect]}
590
591 # Re-creation of persistent layer is a noop.
592 l1.rpc.askrene_create_layer(layer='test_layer_persistence', persistent=True)
593
594 # Populate it.
595 l1.rpc.askrene_disable_node('test_layer_persistence', l1.info['id'])
596 l1.rpc.askrene_update_channel('test_layer_persistence', "0x0x1/0", False)
597 l1.rpc.askrene_create_channel('test_layer_persistence',
598 l2.info['id'],
599 l1.info['id'],
600 '0x0x1',
601 '1000000sat')
602 l1.rpc.askrene_update_channel(layer='test_layer_persistence',
603 short_channel_id_dir='0x0x1/0',
604 htlc_minimum_msat=100,
605 htlc_maximum_msat=900000000,
606 fee_base_msat=1,
607 fee_proportional_millionths=2,
608 cltv_expiry_delta=18)
609 l1.rpc.askrene_update_channel(layer='test_layer_persistence',
610 short_channel_id_dir='0x0x1/0',
611 enabled=True,
612 cltv_expiry_delta=19)
613 l1.rpc.askrene_inform_channel('test_layer_persistence',
614 '0x0x1/1',
615 100000,
616 'unconstrained')
617 scid12 = first_scid(l1, l2)
618 scid12dir = f"{scid12}/{direction(l1.info['id'], l2.info['id'])}"
619 l1.rpc.askrene_inform_channel(layer='test_layer_persistence',
620 short_channel_id_dir=scid12dir,
621 amount_msat=12341235,
622 inform='constrained')
623

Callers

nothing calls this directly

Calls 4

first_scidFunction · 0.90
line_graphMethod · 0.80
restartMethod · 0.80
directionFunction · 0.70

Tested by

no test coverage detected