Skip to content

Commit

Permalink
Keep trying to receive websocket notification in test
Browse files Browse the repository at this point in the history
This may or may not fix #1057 and other test failures. Since the network
delay in receiving the message is unknown (but expected to be very
small, usually), we keep trying to receive notification of the
transaction message in the websocket test 10 times for a total of 2
seconds (on the assumption that if it takes longer than that, something
else is wrong).
  • Loading branch information
AdamISZ committed Jan 6, 2023
1 parent c503394 commit 06c29c2
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions jmclient/test/test_wallet_rpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ def test_notif(self):
# create a small delay between the instruction to send
# the notification, and the checking of its receipt,
# otherwise the client will be queried before the notification
# arrived:
# arrived. We will try a few times before giving up.
self.attempt_receipt_counter = 0
d.addCallback(self.wait_to_receive)
return d

Expand All @@ -178,7 +179,13 @@ def wait_to_receive(self, res):
return d

def checkNotifs(self):
assert self.client_factory.notifs == 1
if self.attempt_receipt_counter > 10:
assert False
if not self.client_factory.notifs == 1:
jlog.info("Failed to receive notification, waiting and trying again")
self.attempt_receipt_counter += 1
d = task.deferLater(reactor, 0.2, self.checkNotifs)
return d

def fire_tx_notif(self):
self.daemon.wss_factory.sendTxNotification(self.test_tx,
Expand Down

0 comments on commit 06c29c2

Please sign in to comment.