From 202ce5e4ea6e26a70c74342ff507931611c14fba Mon Sep 17 00:00:00 2001 From: Christian Decker Date: Mon, 28 May 2018 18:10:24 +0200 Subject: [PATCH] pytest: Replace wait_for_channels with an actual check Signed-off-by: Christian Decker --- tests/test_lightningd.py | 3 ++- tests/utils.py | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/test_lightningd.py b/tests/test_lightningd.py index c63f4de48..fc92f1d4c 100644 --- a/tests/test_lightningd.py +++ b/tests/test_lightningd.py @@ -3857,7 +3857,8 @@ class LightningDTests(BaseLightningDTests): assert l2.rpc.listinvoices('inv1')['invoices'][0]['status'] == 'paid' # FIXME: We should re-add pre-announced routes on startup! - self.wait_for_routes(l1, [chanid]) + l1.bitcoin.rpc.generate(5) + l1.wait_channel_active(chanid) # A duplicate should succeed immediately (nop) and return correct preimage. preimage = l1.rpc.pay(inv1['bolt11'])['payment_preimage'] diff --git a/tests/utils.py b/tests/utils.py index 2d97e5cef..60e4ff006 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -459,3 +459,11 @@ class LightningNode(object): # Intermittent decoding failure. See if it decodes badly twice? decoded2 = self.bitcoin.rpc.decoderawtransaction(tx) raise ValueError("Can't find {} payment in {} (1={} 2={})".format(amount, tx, decoded, decoded2)) + + def is_channel_active(self, chanid): + channels = self.rpc.listchannels()['channels'] + active = [(c['short_channel_id'], c['flags']) for c in channels if c['active']] + return (chanid, 0) in active and (chanid, 1) in active + + def wait_channel_active(self, chanid): + wait_for(lambda: self.is_channel_active(chanid), interval=1)