Skip to content

Commit dfa4877

Browse files
committed
Refactor : Python binding test
Added and expected_event function to better handle various event in the same block of code instead of duplicate the code for event handling. This improve the code readability and clarity in the test reading
1 parent 9e0cfc5 commit dfa4877

File tree

1 file changed

+21
-35
lines changed

1 file changed

+21
-35
lines changed

bindings/python/src/ldk_node/test_ldk_node.py

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,16 @@ def get_esplora_endpoint():
112112
return str(os.environ['ESPLORA_ENDPOINT'])
113113
return DEFAULT_ESPLORA_SERVER_URL
114114

115+
116+
def expect_event(node, expected_event_type):
117+
event = node.wait_next_event()
118+
assert isinstance(event, expected_event_type)
119+
print("EVENT:", event)
120+
node.event_handled()
121+
return event
122+
123+
124+
115125
class TestLdkNode(unittest.TestCase):
116126
def setUp(self):
117127
bitcoin_cli("createwallet ldk_node_test")
@@ -175,59 +185,36 @@ def test_channel_full_cycle(self):
175185

176186
node_1.open_channel(node_id_2, listening_addresses_2[0], 50000, None, None)
177187

178-
channel_pending_event_1 = node_1.wait_next_event()
179-
assert isinstance(channel_pending_event_1, Event.CHANNEL_PENDING)
180-
print("EVENT:", channel_pending_event_1)
181-
node_1.event_handled()
182-
183-
channel_pending_event_2 = node_2.wait_next_event()
184-
assert isinstance(channel_pending_event_2, Event.CHANNEL_PENDING)
185-
print("EVENT:", channel_pending_event_2)
186-
node_2.event_handled()
187188

189+
channel_pending_event_1 = expect_event(node_1, Event.CHANNEL_PENDING)
190+
channel_pending_event_2 = expect_event(node_2, Event.CHANNEL_PENDING)
188191
funding_txid = channel_pending_event_1.funding_txo.txid
189192
wait_for_tx(esplora_endpoint, funding_txid)
190193
mine_and_wait(esplora_endpoint, 6)
191194

192195
node_1.sync_wallets()
193196
node_2.sync_wallets()
194197

195-
channel_ready_event_1 = node_1.wait_next_event()
196-
assert isinstance(channel_ready_event_1, Event.CHANNEL_READY)
197-
print("EVENT:", channel_ready_event_1)
198+
channel_ready_event_1 = expect_event(node_1, Event.CHANNEL_READY)
198199
print("funding_txo:", funding_txid)
199-
node_1.event_handled()
200200

201-
channel_ready_event_2 = node_2.wait_next_event()
202-
assert isinstance(channel_ready_event_2, Event.CHANNEL_READY)
203-
print("EVENT:", channel_ready_event_2)
204-
node_2.event_handled()
201+
channel_ready_event_2 = expect_event(node_2, Event.CHANNEL_READY)
205202

206203
description = Bolt11InvoiceDescription.DIRECT("asdf")
207204
invoice = node_2.bolt11_payment().receive(2500000, description, 9217)
208205
node_1.bolt11_payment().send(invoice, None)
206+
207+
expect_event(node_1, Event.PAYMENT_SUCCESSFUL)
209208

210-
payment_successful_event_1 = node_1.wait_next_event()
211-
assert isinstance(payment_successful_event_1, Event.PAYMENT_SUCCESSFUL)
212-
print("EVENT:", payment_successful_event_1)
213-
node_1.event_handled()
214-
215-
payment_received_event_2 = node_2.wait_next_event()
216-
assert isinstance(payment_received_event_2, Event.PAYMENT_RECEIVED)
217-
print("EVENT:", payment_received_event_2)
218-
node_2.event_handled()
209+
expect_event(node_2, Event.PAYMENT_RECEIVED)
210+
219211

220212
node_2.close_channel(channel_ready_event_2.user_channel_id, node_id_1)
221213

222-
channel_closed_event_1 = node_1.wait_next_event()
223-
assert isinstance(channel_closed_event_1, Event.CHANNEL_CLOSED)
224-
print("EVENT:", channel_closed_event_1)
225-
node_1.event_handled()
214+
# expect channel closed event on both nodes
215+
expect_event(node_1, Event.CHANNEL_CLOSED)
226216

227-
channel_closed_event_2 = node_2.wait_next_event()
228-
assert isinstance(channel_closed_event_2, Event.CHANNEL_CLOSED)
229-
print("EVENT:", channel_closed_event_2)
230-
node_2.event_handled()
217+
expect_event(node_2, Event.CHANNEL_CLOSED)
231218

232219
mine_and_wait(esplora_endpoint, 1)
233220

@@ -251,4 +238,3 @@ def test_channel_full_cycle(self):
251238

252239
if __name__ == '__main__':
253240
unittest.main()
254-

0 commit comments

Comments
 (0)