diff --git a/bindings/python/src/ldk_node/test_ldk_node.py b/bindings/python/src/ldk_node/test_ldk_node.py index 0b73e6a47..e0d660bb1 100644 --- a/bindings/python/src/ldk_node/test_ldk_node.py +++ b/bindings/python/src/ldk_node/test_ldk_node.py @@ -112,6 +112,33 @@ def get_esplora_endpoint(): return str(os.environ['ESPLORA_ENDPOINT']) return DEFAULT_ESPLORA_SERVER_URL +# handling expected event + +def expect_event(node, expected_event_type): + event = node.wait_next_event() + assert isinstance(event, expected_event_type) + print("EVENT:", event) + node.event_handled() + +# handling channel pending event + +def expect_channel_pending_event(node): + event = node.wait_next_event() + assert isinstance(event, Event.CHANNEL_PENDING) + print("EVENT:", event) + node.event_handled() + return event + +# handling channel ready event + +def expect_channel_ready_event(node): + event = node.wait_next_event() + assert isinstance(event, Event.CHANNEL_READY) + print("EVENT:", event) + node.event_handled() + return event + + class TestLdkNode(unittest.TestCase): def setUp(self): bitcoin_cli("createwallet ldk_node_test") @@ -175,15 +202,10 @@ def test_channel_full_cycle(self): node_1.open_channel(node_id_2, listening_addresses_2[0], 50000, None, None) - channel_pending_event_1 = node_1.wait_next_event() - assert isinstance(channel_pending_event_1, Event.CHANNEL_PENDING) - print("EVENT:", channel_pending_event_1) - node_1.event_handled() + channel_pending_event_1 = expect_channel_pending_event(node_1) - channel_pending_event_2 = node_2.wait_next_event() - assert isinstance(channel_pending_event_2, Event.CHANNEL_PENDING) - print("EVENT:", channel_pending_event_2) - node_2.event_handled() + # expect channel pending event on node 2 but without return value since it doesn't contain the funding_txo + expect_event(node_2, Event.CHANNEL_PENDING) funding_txid = channel_pending_event_1.funding_txo.txid wait_for_tx(esplora_endpoint, funding_txid) @@ -192,42 +214,28 @@ def test_channel_full_cycle(self): node_1.sync_wallets() node_2.sync_wallets() - channel_ready_event_1 = node_1.wait_next_event() - assert isinstance(channel_ready_event_1, Event.CHANNEL_READY) - print("EVENT:", channel_ready_event_1) + # expect generic channel ready event on node 1 + channel_ready_event_1 = expect_event(node_1, Event.CHANNEL_READY) print("funding_txo:", funding_txid) - node_1.event_handled() - channel_ready_event_2 = node_2.wait_next_event() - assert isinstance(channel_ready_event_2, Event.CHANNEL_READY) - print("EVENT:", channel_ready_event_2) - node_2.event_handled() + channel_ready_event_2 = expect_channel_ready_event(node_2) description = Bolt11InvoiceDescription.DIRECT("asdf") invoice = node_2.bolt11_payment().receive(2500000, description, 9217) node_1.bolt11_payment().send(invoice, None) - payment_successful_event_1 = node_1.wait_next_event() - assert isinstance(payment_successful_event_1, Event.PAYMENT_SUCCESSFUL) - print("EVENT:", payment_successful_event_1) - node_1.event_handled() + # expect payment successful event on node 1 and payment received event on node 2 + expect_event(node_1, Event.PAYMENT_SUCCESSFUL) - payment_received_event_2 = node_2.wait_next_event() - assert isinstance(payment_received_event_2, Event.PAYMENT_RECEIVED) - print("EVENT:", payment_received_event_2) - node_2.event_handled() + expect_event(node_2, Event.PAYMENT_RECEIVED) + node_2.close_channel(channel_ready_event_2.user_channel_id, node_id_1) - channel_closed_event_1 = node_1.wait_next_event() - assert isinstance(channel_closed_event_1, Event.CHANNEL_CLOSED) - print("EVENT:", channel_closed_event_1) - node_1.event_handled() + # expect channel closed event on both nodes + expect_event(node_1, Event.CHANNEL_CLOSED) - channel_closed_event_2 = node_2.wait_next_event() - assert isinstance(channel_closed_event_2, Event.CHANNEL_CLOSED) - print("EVENT:", channel_closed_event_2) - node_2.event_handled() + expect_event(node_2, Event.CHANNEL_CLOSED) mine_and_wait(esplora_endpoint, 1) @@ -251,4 +259,3 @@ def test_channel_full_cycle(self): if __name__ == '__main__': unittest.main() -