From d2e7831d878bb302739932494f1dfab093cdcef8 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 31 Jan 2024 12:23:37 +1030 Subject: [PATCH] pytest: fix flake in test_upgrade_statickey_onchaind We need to make sure l1 has closed previous channel: ``` wait_for(lambda: only_one(l1.rpc.listpeerchannels()['channels'])['state'] == 'CHANNELD_NORMAL') tests/test_connection.py:3866: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ contrib/pyln-testing/pyln/testing/utils.py:88: in wait_for while not success(): tests/test_connection.py:3866: in wait_for(lambda: only_one(l1.rpc.listpeerchannels()['channels'])['state'] == 'CHANNELD_NORMAL') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ arr = [{'alias': {'local': '7000028x5013088x54781', 'remote': '3360520x6431919x56666'}, 'channel_id': 'fb198b27b1be882937eea...: ['static_remotekey/even']}, 'close_to': '5120888ab14b6e1655d1d00039b836d70b66e3351543ab6cd2f94166255f3d5e6cb5', ...}] def only_one(arr): """Many JSON RPC calls return an array; often we only expect a single entry """ > assert len(arr) == 1 E AssertionError ``` Signed-off-by: Rusty Russell --- tests/test_connection.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_connection.py b/tests/test_connection.py index 8410539ee7c4..87414c066171 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -3785,6 +3785,7 @@ def test_upgrade_statickey_onchaind(node_factory, executor, bitcoind): bitcoind.generate_block(100, wait_for_mempool=txid) # This works even if they disconnect and listpeerchannels() is empty: + wait_for(lambda: l1.rpc.listpeerchannels()['channels'] == []) wait_for(lambda: l2.rpc.listpeerchannels()['channels'] == []) # TEST 2: Cheat from post-upgrade. @@ -3817,6 +3818,7 @@ def test_upgrade_statickey_onchaind(node_factory, executor, bitcoind): bitcoind.generate_block(100, wait_for_mempool=txid) # This works even if they disconnect and listpeers() is empty: + wait_for(lambda: len(l1.rpc.listpeerchannels()['channels']) == 0) wait_for(lambda: len(l2.rpc.listpeerchannels()['channels']) == 0) # TEST 3: Unilateral close from pre-upgrade @@ -3852,6 +3854,7 @@ def test_upgrade_statickey_onchaind(node_factory, executor, bitcoind): bitcoind.generate_block(100, wait_for_mempool=txid) # This works even if they disconnect and listpeerchannels() is empty: + wait_for(lambda: len(l1.rpc.listpeerchannels()['channels']) == 0) wait_for(lambda: len(l2.rpc.listpeerchannels()['channels']) == 0) # TEST 4: Unilateral close from post-upgrade